【精简版】HTTP 请求头、响应头参数详解

【精简版】HTTP 请求头、响应头参数详解精简的 HTTP 请求头 响应头参数详解 请求头参数

大家好,欢迎来到IT知识分享网。

目录

一、概念

二、请求头参数说明

1、Accept

2、Accept-Encoding

3、Accept-Language

4、Connection

5、Host

6、Referer

7、User-Agent

8、Content-Type

三、响应头参数说明

1、Content-Type

四、请求行、响应行格式

1、请求行

2、响应行


一、概念

        超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从 Web 服务器传送到客户端的浏览器。

二、请求头参数说明

1、Accept

概念:用于告诉服务器,客户端能够理解并处理哪种类型的响应数据。

说明:

①application/json 表示客户端可以接受服务器回发的 JSON 格式的数据,text/plain 表示客户端可以接受服务器回发的纯文本格式的数据 ,text/html 表示客户端可以接受服务器回发的 HTML 文档格式的数据,*/* 表示客户端可以接受服务器回发的任意类型的数据;如果服务器无法返回设定类型的数据,则返回 406 错误(Non Acceptable)。

②如果想给响应数据类型增加优先级,则使用 q= 来额外表示权重值;重值 q 的范围是 0~1(可精确到小数点后3位),且 1 为最大值。不指定权重 q 值时,默认权重为 q=1.0。当服务器提供多种响应数据时,将会首先返回权重值最高的数据。(例如:Accept: application/json, text/plain;q=0.9, text/html, */*)

2、Accept-Encoding

概念:用于告诉服务器,客户端能够理解的内容编码方式;允许服务器根据客户端的支持情况,选择一种或多种编码方式对响应的内容进行压缩,以减少传输的数据量,从而提高传输效率。

说明:

①gzip 表示采用 Lempel-Ziv coding(LZ77)压缩算法,以及32位 CRC 校验的编码方式,deflate 表示采用 zlib 结构和 deflate 算法的编码方式,compress 表示采用 Lempel-Ziv Welch(LZW)算法的编码方式,br 表示采用 Brotli 算法的编码方式,identity 表示客户端不支持任何压缩方式或者明确希望接收未压缩的内容,* 表示匹配其他任意未在该请求头字段中列出的编码方式。

②如果想给编码方式增加优先级,则使用 q= 来额外表示权重值;重值 q 的范围是 0~1(可精确到小数点后3位),且 1 为最大值。不指定权重 q 值时,默认权重为 q=1.0。当服务器提供多种编码方式时,将会首先使用权重值最高的编码方式。(例如:Accept-Encoding: br, gzip;q=0.8, deflate, zstd;q=0.5, *;q=0.1)

3、Accept-Language

概念:用于告诉服务器,客户端能够理解并处理哪种类型的自然语言。

说明:

①en 表示客户端能够理解并处理英语,en-US 表示客户端能够理解并处理美国英语,zh 表示客户端能够理解并处理中文,zh-CN 表示客户端能够理解并处理简体中文,zh-TW 表示客户端能够理解并处理繁体中文,zh-HK 表示客户端能够理解并处理中文(香港),fr 表示客户端能够理解并处理法语,fr-FR 表示客户端能够理解并处理法国法语,de 表示客户端能够理解并处理德语,de-DE 表示客户端能够理解并处理德国德语。

②如果想给自然语言增加优先级,则使用 q= 来额外表示权重值;重值 q 的范围是 0~1(可精确到小数点后3位),且 1 为最大值。不指定权重 q 值时,默认权重为 q=1.0。当服务器提供多种自然语言时,将会首先使用权重值最高的自然语言。(例如:Accept-Language: zh-CN, zh;q=0.8, zh-TW;q=0.7, zh-HK;q=0.5, en-US;q=0.3, en;q=0.2)

4、Connection

概念:用于控制 HTTP 连接的行为,允许客户端和服务器在请求/响应中指定是否要保持连接打开,以便后续的请求/响应可以在同一个连接上进行,从而节省资源并提高性能。

说明:

①Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭(这是 HTTP/1.1 的默认行为),如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;

②Connection: close 代表一个请求完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接会关闭(这是 HTTP/1.0 的默认行为), 当客户端再次发送请求,需要重新建立 TCP 连接。

5、Host

概念:用于指定请求的目标服务器的主机名和端口号。

说明:

①Host 是 HTTP 1.1 协议中新增的一个请求头字段,也是 HTTP 请求中唯一必须包含的请求头字段;如果缺少这个字段,服务器可能会返回 400 Bad Request 错误。

②Host 字段的格式通常是”域名:端口号”,例如 www.example.com:8080。如果端口号是默认的 80,则可以省略端口号部分。

6、Referer

概念:用来告诉服务器是从哪个页面链接过来的,其格式通常为:Referer: <RUL>,这里的 <URL> 是引用页面的完整 URL 地址。

说明:

①通过 Referer 字段,服务器可以了解用户是从哪个页面跳转而来的,这有助于服务器进行更精确的数据统计、日志记录、缓存优化等操作;

②服务器可以通过检查 Referer 字段来判断请求是否来自合法的来源,从而防止恶意请求或未经授权的访问;

③通过验证 Referer 字段,网站可以判断一个请求是否是从预期的来源发起的,从而增加对跨域请求伪造(CSRF)等攻击的防御能力。

7、User-Agent

概念:用于告诉服务器, 客户端使用的操作系统、浏览器的名称和版本。

说明:

①网站管理员可以使用 User-Agent 字段来收集关于访问其网站的客户端的统计数据,这些数据可以用于了解用户的浏览器偏好、设备使用情况等。

②基于 User-Agent 字段,服务器可以发送与特定浏览器或设备兼容的网页内容或资源。

③值得注意的是,User-Agent 字段是可以被伪造的,因此不能仅依赖此字段来确定请求的真正来源或用户身份。

8、Content-Type

概念:用于告诉服务器,请求体的数据类型是什么。

说明:

①Content-Type 的格式通常为 type/subtype;parameter。其中,type 是主类型,subtype 是子类型,二者之间用”/”分隔。parameter 是可选参数,如字符集(charset)、边界(boundary)等。

②application/json 表示请求体是 JSON 格式的数据,text/plain 表示请求体是纯文本数据,application/xml、text/xml 表示请求体是 XML 格式的数据,multipart/form-data 表示请求体是包含文件的数据,application/x-www-form-urlencoded 表示请求体是表单数据,此外还可以自定义 Content-Type 的值以指示服务器如何处理特定的数据类型(例如:Content-Type: application/json;charset=utf-8)。

三、响应头参数说明

1、Content-Type

概念:用于告诉客户端,响应体的数据类型是什么。

说明:

①Content-Type 的格式通常为 type/subtype;parameter。其中,type 是主类型,subtype 是子类型,二者之间用”/”分隔。parameter 是可选参数,如字符集(charset)、边界(boundary)等。

②text/html 表示响应体是 HTML 文档,text/plain 表示响应体是纯文本数据,text/css 表示响应体是 CSS 样式表,image/jpeg、image/png、image/gif 等表示响应体是图片数据,application/json 表示响应体是 JSON 格式的数据,application/pdf 表示响应体是 PDF 文档,application/xml、text/xml 表示响应体是 XML 格式的数据,application/javascript、text/javascript 表示响应体是 JavaScript 代码,application/octet-stream 表示响应体是任意二进制数据,multipart/mixed 表示响应体是复合体类型,此外还可以自定义 Content-Type 的值以指示响应体的特定格式或内容(例如:Content-Type: application/json;charset=utf-8)。

四、请求行、响应行格式

1、请求行

        请求方式  请求URI  HTTP协议及版本(例如:POST /user/login HTTP/1.1)

2、响应行

        HTTP协议及版本  状态码  状态描述(例如:HTTP/1.1 200 ok)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/116666.html

(0)
上一篇 2025-11-27 10:33
下一篇 2025-11-27 11:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信