HTTP2_特性,HTTP_相关

HTTP2引入了二进制传输和多路复用,解决了HTTP1.x中连接管理和头部开销的问题,提高了性能。通过一个TCP连接处理多个请求,减少了延迟并允许服务端推送资源。此外,还使用HPACK对头部进行压缩,进一步提升了效率。
摘要由CSDN通过智能技术生成

HTTP2_特性:


  • 二进制传输

在之前的 http1.x 中,是通过 文本传输 的,http2  中所有的传输数据都会被分割,并采用 二进制编码

  • 多路复用
  1. 在 HTTP2 中有两个概念,流 (stream) 帧 (frame) 。帧是最小单位,每个帧都会有  Stream Identifier 来标记它属于哪个流。
  2. 在 http1.x 中,每个 HTTP 请求会建立一个 TCP 连接,也就意味着每个请求都要进行三次握手,这会造成时间和资源上的浪费,而且浏览器会限制同一域名下并发请求的个数,当请求很多资源时,队头阻塞 会导致在达到最大请求数量时,剩余的资源要等待其他资源请求完成后才会发起请求。
  3. 在 http2 中,所有请求都会公用一个 TCP 连接,就可以传输所有的数据。这就解决了浏览器同一域名请求数量的问题,也解决了每开一个 tcp 连接都会造成的资源浪费。
  • 同一个 tcp 连接下多个 http 请求,如何保证传输不出错呢 ?

多路复用,就是在一个 TCP 连接中可以存在多个流,每个流对应一个请求,包含多个帧。通过 Stream Identifier 就可以识别出每个帧对应的流。当帧到达服务端之后,就可以根据 Stream Idemtifier 来重新组合得到完整的请求了。这就在提高传输性能的同时保证了传输的正确性。

  • header 压缩

http2 中,使用了 HPACK 压缩格式,对 header 进行了编码,减少了 header 的大小,大概原理就是服务端和客户端共同维护一个静态词典,用于记录出现过的 header,  后面在传输过程中发送端直接传输记录的键名,接收端就可以通过键名找到相应的值。

  • 服务端 push

在 http2 中,服务端可以在客户端的某个请求后,根据这个请求,主动推送其他资源到客户端


  • HTTP 有哪些请求方法 ?

 HTTP1.1 中定义的请求方法有 8 种:GET,POST,PUT,DELETE,PATCH,HEAD,OPTIONS,TRACE。最常用的两种是 GET 和 POST,如果是 Restful 接口的话一般会用到 GET,POST,PUT,DELETE。

方法详解:

  1. OPTIONS:返回服务器针对特定资源所 支持的 HTTP 请求方法,也可以利用 web 服务器发送*的请求头来测试服务器的功能性。
  2. HEAD:向服务器索于 GET 请求相一致的响应,只不过 响应体将不会被返回
  3. GET:向特定的资源发出请求。
  4. POST:向指定资源提交数据进行处理请求。数据被包含在请求体中。POST 请求可能会导致 新的资源的建立或已有资源的修改
  5. PUT:向指定资源位置 上传最新内容
  6. DELETE:请求服务器删除 Request-URL 所标识的资源。
  7. TRACE:回显服务器收到的请求,主要用于测试和诊断。
  8. CONNECT:HTTP1.1 协议中预留给能够将连接改为管理方式的代理服务器。
  9. PATCH:新引入的,对  PUT  方法的补充,用来 对已知资源进行局部修改

【注】:方法名称是 区分大小写 的。某个请求所针对的资源不支持对应的请求方法的时候,服务器 返回状态码 405。当服务器不认识或不支持对应的请求方法时,返回状态码 501

  • 常见 HTTP 请求头 ?
  1. Accept:浏览器接受的格式。
  2. Accept-Encoding:浏览器接受的编码方式。
  3. Accept-Language:浏览器接受的语言,用于服务器判断多语言。
  4. Cache-Control:控制缓存的时效性。
  5. Connection:连接方式,keep-alive 且服务端支持,则会复用 TCP 连接。
  6. Host:HTTP访问使用的域名。
  7. if-Modeified-Since:上次访问时的更改时间,如果服务端认为此时间后没有更新,则会给出 304 响应(协商缓存)。
  8. if-None-Match:上次访问使用的 E-Tag,通常是页面的信息摘要,比更改时间更准确一点(协商缓存)。
  9. User-Agent:客户端标识,多数浏览器这个字段很复杂,包括操作系统,浏览器内核,版本号,HTML 排版引擎等。
  10. Cookie:客户端存储的 cookie 字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值