HTTP 请求头/响应头详解
0. HTTP 请求头
Accept
Accept:text/html
浏览器可以接受服务器回发的类型为text/html
Accept: */*
代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)Accept-Encoding
Accept-Encoding: gzip, deflate
浏览器声明可以接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip
,deflate
,br
),(注意:这不是只字符编码)Accept-Language
Accept-Language:zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
浏览器声明可以接收的语言。
3.Connection
Connection: keep-alive
当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。
Connection: close
代表一个Request
完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request
,需要重新建立TCP连接。Host
(发送请求必须的内容)
Host:https://www.google.com.hk/
请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。Referer
Referer:https://www.baidu.com/?tn=62095104_8_oem_dg
请求头中包含以前的 web 页面,从中当前请求页面的链接,随后的地址。例如,Referer头允许服务器识别人们访问他们的位置,并且可以使用该数据进行分析,记录或优化缓存。User-Agent
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.50
告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本。Cache-Control
Cache-Control:private
默认为private
响应只能够作为私有的缓存,不能再用户间共享
Cache-Control:public
响应会被缓存,并且在多用户间共享。正常情况, 如果要求HTTP认证,响应会自动设置为 private
Cache-Control:must-revalidate
响应在特定条件下会被重用,以满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。
Cache-Control:no-cache
响应不会被缓存,而是实时向服务器端请求资源。
Cache-Control:max-age=10
设置缓存最大的有效时间,但是这个参数定义的是时间大小(比如:60)而不是确定的时间点。单位是[秒 seconds]。
Cache-Control:no-store
在任何条件下,响应都不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。Cookie
Cookie
是用来存储一些用户信息以便让服务器辨别用户身份的(大多数需要登录的网站上面会比较常见),比如cookie会存储一些用户的用户名和密码,当用户登录后就会在客户端产生一个cookie来存储相关信息,这样浏览器通过读取cookie的信息去服务器上验证并通过后会判定你是合法用户,从而允许查看相应网页。当然cookie里面的数据不仅仅是上述范围,还有很多信息可以存储是cookie里面,比如sessionid等。
10 .Range
(用于断点续传)
Range:bytes=0-5
指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分。dnt
Do Not Track:禁止追踪是否设置1(true)/0(false)
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.