Http协议

2023-12-26 07:04:26

目录

1.什么是Http协议

2.HTTP 请求/响应的步骤

3.请求报文

3.1请求行

3.2请求头

3.3请求体?

3.4响应头

3.5响应体


1.什么是Http协议

HTTP,全称是 HyperText Transfer Protocol,中文叫做超文本传输协议。简单来说,Http协议是浏览器和服务器之间进行数据传输需要遵循的格式规范。

它是一个应用层协议,承载于TCP协议之上。

2.HTTP 请求/响应的步骤

(1)客户端连接到 Web 服务器
? ? ? ? 一个 HTTP 客户端。通常是浏览器,与 Web 服务器的 HTTP 端(默认为 80)建立一个 TCP 套接字连接。如:http://www.baidu.com;??????

?(2)发送 HTTP 请求
? ? ? ?通过 TCP 套接字,客户端向 Web 服务器发送一个文本的请求报文,一个请求报文包括请求行、请求头部、空行和请求数据 4 部分组成。

(3)服务器接受请求并返回 HTTP 响应
? ? ? ?Web 服务器解析请求,定位请求资源。服务器将资源副本写到 TCP 套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据 4 部分组成。

(5)释放 TCP 连接
? ? ? ?如果 connect 模式为 close,则服务器阻断关闭 TCP 连接,客户端被动关闭连接,释放 TCP 连接;如果 connection 模式为 keepalive,则该连接会保持一段时间,在改时间内可以继续接收请求。

(6)客户端浏览器解析 HTML 内容。
? ? ? 客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码,然后解析每一个响应头,响应头告知以下为若干字节的 HTML 文档和文档的字符集。客户端浏览器读取响应数据 HTML,根据 HTML 语法堆砌进行格式化,并在浏览器窗口中显示。

3.请求报文

3.1请求行

什么是Http协议: 浏览器和服务器之间进行数据传输需要遵循的格式规范。

3.2请求头

  • Accept:告诉服务器当前浏览器能接受和处理的介质类型,/表示可接受所有类型。

  • Accept-Encoding:告诉服务器当前浏览器支持的内容编码。

  • Accept-Language:告诉服务器当前浏览器能接受和处理的语言。上述请求中的zh-CN,zh;q=0.8表示用户对zh-CN的喜好程度为80%。

  • Connection:keep-alive,告诉服务器在完成本次请求的响应后,保持该TCP连接不释放,等待本次连接的后续请求。这样可以减少打开关闭TCP连接的次数提升处理性能。另外的可选项是Close,表明直接响应接受完成后直接将其关闭。

  • Content-Length:用于描述HTTP消息实体的传输长度。

  • Content-Type:内容类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

  • Cookie:表示服务器端为本次访问分配了一个Session ID,每次发送请求时都会主动将该Session ID通过Cookie字段又发送回服务器,用于验证身份和保持状态。

  • Host:描述请求将被发送的目的地,在任何类型的请求中都会包含此信息。

  • Origin:用来说明请求从哪里发起的。

  • Referer:指定发起该请求的源地址。根据该值服务器可以追踪到来访者的基本信息。比如我们在百度首页搜索博客园关键字,并从搜索结果中访问,那么博客园网站服务器就可以根据Referer值追踪到来访者地址为:https://www.baidu.com/link?url…7c64da001b54df000000065e06ec91 这样就可以知道来访者是从哪个网站访问到此。如果来访者的Referer为空,有两种可能,一种是来访者修改了请求,删除了Referer字段的值,另一种就是来访者是直接在URL地址栏输入地址访问该网站。

  • TE:采用何种传输编码。

  • User-Agent:是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核等信息的标识。

  • X-Requested-With:用来判断请求是Ajax请求还是其他请求。

3.3请求体?

  • POST请求通过请求体来传递数据,通过param1=value1&param2=value2的键值对形式编码。

  • GET请求通过URL地址参数来传递数据,也就是我们平时看到的URL地址里面“?”后面的所包含的键值对。

3.4响应头

  • content-encoding:响应的编码格式

  • content-type:响应内容的类型

  • date:响应的时间。此处使用的是GMT标准时间

  • server:处理请求的源头服务器所用到的软件相关信息

  • strict-transport-security:

HTTP Strict Transport Security(通常简称为HSTS)是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式。?

3.5响应体

?响应体就是服务器返回的HTML页面或者json数据

文章来源:https://blog.csdn.net/2301_77072336/article/details/135207119
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。