面试专题:简析http请求头(headers)四部分

面试专题:简析http请求头(headers)四部分

前言HTTP请求头(headers)信息是HTTP请求中的一部分,它包含了客户端和服务器之间传递的附加信息,为什么要介绍这一部分,这是之前面试的时候,一个面试题,如果没去了解的话,可能就知道http请求头就只有请求头一个东西,其实不是的。HTTP头域包括通用头、请求头、响应头和实体头四个部分,本文将分别进行介绍这个四个部分。

一、通用头通用头是HTTP请求和响应中都可以使用的头域,主要包括以下几种:

Cache-Control:用于控制缓存行为,例如max-age=3600表示缓存有效期为1小时。Connection:用于控制连接行为,例如keep-alive表示使用持久连接。Date:表示消息发送的日期和时间。Pragma:用于包含实现特定的指令,例如no-cache表示不使用缓存。Trailer:用于指示在分块传输编码中包含的额外头域。Transfer-Encoding:用于指示传输编码方式,例如chunked表示分块传输编码。Upgrade:用于指示客户端希望升级到新的协议。Via:用于表示消息经过的中间节点。通用头主要关注的是请求的URL

二、请求头请求头是客户端发送给服务器的附加信息,主要包括以下几种:

Accept:用于指示客户端可以接受的MIME类型,例如text/html, application/json表示接受HTML和JSON格式的数据。Accept-Charset:用于指示客户端可以接受的字符集,例如utf-8表示接受UTF-8编码的数据。Accept-Encoding:用于指示客户端可以接受的内容编码,例如gzip, deflate表示接受Gzip和Deflate编码的数据。Accept-Language:用于指示客户端可以接受的语言,例如en-US表示接受美国英语。Authorization:用于包含客户端提供的身份验证信息,例如Basic dXNlcm5hbWU6cGFzc3dvcmQ=表示使用基本身份验证,用户名为username,密码为password。Cookie:用于发送客户端的cookie信息。Expect:用于指示客户端期望服务器满足的要求,例如100-continue表示客户端期望服务器在接收完请求头后返回100 Continue状态码。From:用于指示发送请求的用户的电子邮件地址。Host:用于指示请求的目标服务器,例如www.example.com表示请求的目标服务器为www.example.com。If-Match:用于指示客户端提供的实体标记,如果实体标记匹配,则请求成功。If-Modified-Since:用于指示客户端提供的日期和时间,如果资源自该时间以来未被修改,则返回304 Not Modified状态码。If-None-Match:用于指示客户端提供的实体标记,如果实体标记不匹配,则请求成功。Referer:用于指示当前请求页面的来源页面地址。User-Agent:用于指示客户端的信息,例如浏览器类型、操作系统等。虽然请求头包含的信息很多,但是对于开发主要更关注的是请求头cookie,auth鉴权,可以通过这个信息,验证请求是否鉴权。

三、响应头响应头是服务器发送给客户端的附加信息,主要包括以下几种:

Access-Control-Allow-Origin:用于指示哪些源可以访问资源,例如\*表示允许所有源访问。Cache-Control:用于控制缓存行为,例如max-age=3600表示缓存有效期为1小时。Content-Encoding:用于指示资源的内容编码,例如gzip表示资源使用Gzip编码。Content-Language:用于指示资源的语言,例如en-US表示资源使用美国英语。Content-Length:用于指示资源的长度,例如1234表示资源长度为1234字节。Content-Location:用于指示资源的URI,例如/index.html表示资源的URI为/index.html。Content-Type:用于指示资源的MIME类型,例如text/html; charset=utf-8表示资源是HTML格式的UTF-8编码文本。Date:表示响应发送的日期和时间。ETag:用于指示资源的实体标记,例如"123456"表示资源的实体标记为123456。Expires:用于指示资源的过期时间,例如Thu, 01 Dec 1994 16:00:00 GMT表示资源在1994年12月1日16:00:00过期。Last-Modified:用于指示资源的最后修改时间,例如Tue, 15 Nov 1994 12:45:26 GMT表示资源在1994年11月15日12:45:26被修改。Location:用于指示资源的重定向URI,例如http://www.example.com表示资源被重定向到http://www.example.comPragma:用于包含实现特定的指令,例如no-cache表示不使用缓存。Server:用于指示服务器的信息,例如服务器类型、操作系统等。Set-Cookie:用于设置客户端的cookie信息。Vary:用于指示响应是否依赖于请求头中的哪些字段,例如Accept-Encoding表示响应依赖于请求头中的Accept-Encoding字段。更多关注响应数据格式:Content-Type:application/json;charset=UTF-8,用于接收服务返回的数据格式

四、实体头实体头是针对HTTP请求和响应中的实体(资源)的附加信息,主要包括以下几种:

Allow:用于指示资源支持的HTTP方法,例如GET, POST, HEAD表示资源支持GET、POST和HEAD方法。Content-Encoding:用于指示资源的内容编码,例如gzip表示资源使用Gzip编码。Content-Language:用于指示资源的语言,例如en-US表示资源使用美国英语。Content-Length:用于指示资源的长度,例如1234表示资源长度为1234字节。Content-Location:用于指示资源的URI,例如/index.html表示资源的URI为/index.html。Content-MD5:用于指示资源的MD5校验和,例如Q2hlY2sgSW50ZWdyaXR5IQ==表示资源的MD5校验和为Swift。Content-Range:用于指示资源的部分内容,例如bytes 0-499/1234表示返回资源的前500个字节。Content-Type:用于指示资源的MIME类型,例如text/html; charset=utf-8表示资源是HTML格式的UTF-8编码文本。Expires:用于指示资源的过期时间,例如Thu, 01 Dec 1994 16:00:00 GMT表示资源在1994年12月1日16:00:00过期。Last-Modified:用于指示资源的最后修改时间,例如Tue, 15 Nov 1994 12:45:26 GMT表示资源在1994年11月15日12:45:26被修改。这一部分,也是前端请求关注比较多的一部分,可以通过实体头,查看前端实际请求的参数

总之,HTTP请求头(headers)信息是HTTP请求和响应中的重要组成部分,它们包含了客户端和服务器之间传递的附加信息。通过合理设置请求头,可以有效地控制HTTP请求的行为,提高网络应用的性能和可靠性。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

相关推荐

常规Bi项目有哪些
mobile365体育

常规Bi项目有哪些

📅 08-06 👁️ 6298
​6杀姆巴佩!5-4惊魂夜西班牙复仇法国,17岁天才踢碎姆巴佩冠军梦!
百度网盘如何上传视频?
365完美体育

百度网盘如何上传视频?

📅 08-25 👁️ 1605
微信怎么恢复表情包
365_体育投注英超和欧冠

微信怎么恢复表情包

📅 08-16 👁️ 7598
政务云网介绍
mobile365体育

政务云网介绍

📅 08-05 👁️ 9930
遏的字典解释
365_体育投注英超和欧冠

遏的字典解释

📅 07-24 👁️ 3371
将英尺转换为厘米,将厘米转换为英尺
365_体育投注英超和欧冠

将英尺转换为厘米,将厘米转换为英尺

📅 07-24 👁️ 7906
月饼有哪10种口味最好吃
365完美体育

月饼有哪10种口味最好吃

📅 08-10 👁️ 2863
oppo手机邮箱下载的文件在哪里
365完美体育

oppo手机邮箱下载的文件在哪里

📅 08-31 👁️ 1921