HTTP 协议与 HTTPS 协议

Mr.Hdd网络协议Http 协议大约 2 分钟...

应用层协议 —— HTTP 协议

HTTP 协议的发展概述

HTTP 1.0 到 HTTP 3.0 的发展:

image-20221222210453436

  • HTTP 1.0 对同一服务器的每个请求都需要单独的 TCP 连接。
  • HTTP 1.1 中 TCP 连接可以保持打开状态以供重用(持久连接),但它不能解决 HOL(行头)阻塞问题。

HOL 阻塞

HOL 阻塞 - 当浏览器中允许的并行请求数用完时,后续请求需要等待前一个请求完成。

  • HTTP 2.0 通过请求多路复用解决了 HOL 问题,从而消除了应用层的 HOL 阻塞,但是 HOL 阻塞仍然存在于传输层(TCP)中。

HTTP Streams

在上图中可以看到,HTTP 2.0 引入了 “ HTTP Streams ” 的概念,其是对允许多个不同的 HTTP 请求多路复用到同一个 TCP 连接上的一种抽象,每个流不需要按照顺序去发送。

  • HTTP 3.0 底层使用 QUIC 而不是 TCP 作为底层传输协议,从而消除了传输层中的 HOL 阻塞。

QUIC协议

QUIC 基于 UDP,其将 “Streams” 作为一等公民引入传输层。QUIC Steams 共享相同的 QUIC 连接,因此不需要额外的握手和缓慢启动来创建新的 Stream,但 QUIC Streams 是独立交付的,因此在大多数情况下,一个 Stream 的数据包丢失不会影响其他的 Stream。

HTTP 请求

​ HTTP 协议的请求格式如下图所示:

image-20221223170842311

常用请求方法

方法名用法备注
GET获取资源其没有请求体,但有请求参数,虽然请求参数可以向服务器传送信息,但是请求参数只能明文传输,有安全隐患
POST向服务器发送数据没有请求参数,但有请求体,可以通过加密算法对请求体加密,相较于直接使用 GET 请求修改服务器中的数据更加安全
PUT向指定资源位置上传其最新内容
DELETE请求服务器删除指定的内容
HEAD获取报文首部GET 方法一样,只是不返回报文主体部分,通常用于确认 URI 的有效性及资源更新的日期时间等

请求首部字段

首部字段名说明
Accept用户代理可处理的媒体类型
Accept-Charset优先的字符集
Accept-Encoding优先的内容编码
Accept-Language优先的语言(自然语言)
AuthorizationWeb 认证信息
Expect期待服务器的特定行为
Host请求资源所在服务器
If-Match比较实体标记(ETag)
If-Modified-Since比较资源的更新时间

HTTP 响应image-20221223171200266

URI

你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.9