http常见状态码:
200 OK:非常常见,资源请求成功。
201 Created:资源创建成功 多见post请求 不常见。
301 永久重定向 : http->https 如B站 掘金 换域名 。
302 临时重定向 :请求后返回Location头部指示了新的URL,客户端会根据Location头部中提供的URL重新发送请求。
307 暂时重定向 :不会改变请求方法,不能够使用http缓存。
304 自上次请求未修改的文件: 资源已经被缓存 有关于浏览器缓存。
请求资源设置了协商缓存, 第一次为200, 第二次请求就会拿缓存,看服务器内容是否改变 没有则返回304并取缓存,如果改变返回200。
400 Bad Request :是由于明显的客户端错误 例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求。
在 ajax 请求后台数据时比较常见。产生 HTTP 400 错误的原因有:
-
1、前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;
-
2、前端提交的到后台的数据应该是 json 字符串类型,而前端没有将对象转化为字符串类型;
总结:前端提交的数据有问题。
401 unauthorized :当没有权限的用户请求需要带有权限的资源时,会返回401。
总结:没有token,或者token不对。
403 Forbidden 就是拒绝访问 。
404 Not Found 请求地址有错 。
405 错误方法 method not allowed 用错请求方法了。
429 请求过多被限流。
500 internal server Error 服务器执行请求出错。
503 service unavailable 服务器暂时不能用 服务器很忙。
post和get请求的区别
-
发送数据量不同:post能发送数据很大,get请求受到url长度限制。
-
安全性不同:post比get安全一点。get请求显示在url ,被浏览器或者代理服务器缓存。
-
传参方式不同:post请求参数在请求体,get请求参数在url 。
-
语义不同:一个表示从服务器获取资源,一个表示向服务器发送资源。
-
发送数据类型不同:post请求可以发送很多数据类型,get请求只可以发送ASCII字符。
-
get产生一个tcp数据包,post产生两个数据包(get请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据;post请求,浏览器先发送。header,服务器响应100 continue,浏览器再发送data,服务器响应200 返回数据)。
-
GET请求可以被浏览器缓存,因此可以减少服务器的压力,提高页面的响应速度。
语义不同 传参方式 安全性 缓存性 数据包 数据大小 数据类型
-
在计算机网络中,数据包是信息交换的基本单位。当使用HTTP POST请求时,通常会产生两个数据包,分别是请求数据包和响应数据包。
-
请求数据包:请求数据包通常包含了请求头和请求体两部分。请求头包含了请求方法、请求的URI、HTTP版本号和请求头部等信息。请求体包含了请求参数和数据,通常是一个表单或JSON格式的数据。
-
响应数据包:当服务器接收到请求数据包后,会进行处理并返回响应数据包。响应数据包包含了响应头和响应体两部分。响应头包含了响应的HTTP状态码、HTTP版本号和响应头部等信息。响应体包含了服务器返回的数据,通常是HTML、JSON或者其他格式的数据。
-
常见的HTTP请求头和响应头
常见的HTTP请求头:
-
Host:指定服务器的主机名和端口号。
-
User-Agent:标识请求客户端的类型和版本号,常用于判断客户端的类型和操作系统等信息。
-
Accept:指定客户端可接受的响应数据类型。
-
Accept-Encoding:指定客户端可接受的压缩算法类型,如gzip、deflate等。
-
Accept-Language:指定客户端可接受的语言类型。
-
Cookie:包含之前由服务器设置的Cookie信息,用于标识客户端状态。
-
Authorization:用于在请求中传递身份验证信息,如基本认证、摘要认证等。
-
Content-Type:指定请求体的MIME类型。
常见的HTTP响应头:
-
Content-Type:指定响应体的MIME类型。
-
Content-Length:指定响应体的长度。
-
Server:指定HTTP服务器的名称和版本号。
-
Date:指定响应的时间戳。
-
Set-Cookie:在响应中设置Cookie信息,用于标识客户端状态。
-
Location:用于重定向,指定客户端应该跳转到的URL地址。
-
Cache-Control:指定客户端缓存响应的方式。
-
Expires:指定响应的过期时间。
http 和 https的区别
数据传输方式:http明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
默认端口:前者是 80, 后者是 443。
申请证书:需要到CA申请证书,需要一定费用。
证书认证:SSL。
http1.0和http1.1的区别
http1.1持久连接,不断开TCP连接,多个http请求复用同一个TCP连接。http1.0不持久。
流水线:http1.0发送一个请求需要等服务器响应才能第二个请求,http1.1可以同时发多个请求,服务器会根据请求顺序响应,增大了吞吐量。
增加了很多方法,如put、delete、options、head。
http1.0 http2.0的区别
-
多路复用(Multiplexing):HTTP/2.0使用多路复用技术,可以在一个TCP连接上同时传输多个请求和响应。这样可以避免HTTP/1.x中的队头阻塞问题,提高传输效率。
-
数据二进制分帧(Binary Framing):HTTP/2.0将请求和响应的数据分割成一个个二进制帧(Frame),每个帧都有自己的帧头,这样可以更加精细地控制每个请求和响应的传输。
-
头部压缩(Header Compression):HTTP/2.0使用HPACK算法对头部进行压缩,可以减少头部的大小,节省网络带宽,提高传输效率。
-
服务器推送(Server Push):HTTP/2.0支持服务器推送,也就是说,服务器可以在客户端发起请求之前就将相关的资源推送给客户端,这样可以避免客户端再次发起请求,提高页面加载速度。
HTTP/2服务器推送(HTTP/2 server push)是一种提高Web性能的技术,它允许服务器在浏览器请求特定资源之前主动将这些资源推送到浏览器缓存中。
在HTTP/1中,每个资源必须由浏览器发起单独的请求。这意味着,如果你的Web页面需要多个资源,那么就需要进行多次网络往返(请求/响应)才能获取完整的页面内容。这会导致额外的网络延迟和浪费带宽的问题,尤其是对于较大或者较慢的资源(例如图片、视频等)。
而HTTP/2服务器推送解决了这个问题,它允许服务器在发送初始HTML文档时,将与该文档相关的资源一起推送到客户端浏览器,这样就不需要等待客户端发起针对每个资源的单独请求,提高了页面加载速度和用户体验。
使用HTTP/2服务器推送的流程如下:
-
客户端浏览器向服务器请求HTML文档;
-
服务器检查请求中的HTTP/2协议版本,并在响应中包含
HTTP/2 Push
标头; -
服务器在响应中包含初始HTML文档以及与之相关的其他资源,并将这些资源推送到客户端浏览器的缓存中;
-
客户端浏览器处理响应,并从缓存中提取推送的资源,以更快地渲染页面。
标签:HTTP,请求,前端,计算机网络,响应,服务器,数据包,客户端 From: https://www.cnblogs.com/2022xiaoting/p/17267048.html