Skip to content

HTTP重要请求头 #7

@AILINGANGEL

Description

@AILINGANGEL

date

服务器收到请求之后去获取了资源并且发送给客户端的时间,不是产生或者修改对象的时间

age

消息对象在缓存代理服务器中存储的时长, 以秒为单位

set-cookie

服务器端设置cookie的方式,包括如下信息

  • expires/max-age(有效期)
  • domain(在什么domain下有效,在有子域名的网站中可以设置为顶级域名,那么就可以在各个子域名中共享了)
  • path(在什么路径下有效,默认的只会生成cookie的页面以及同级目录页面或者子目录页面生效,可以设置为/表示在根域名下都有效)
  • secure: https下能发送这个cookie
  • SameSite: 这个cookie是否是同站cookie还是第三方cookie(第三方cookie会引起XSRF攻击),有两个类型的值:strict和lax。strict表明这个cookie只能作为第一方的cookie不能作为第三方cookie,lax是宽松模式表明如果网站上是通过a标签或者window.open打开的并且请求方法是get就可以带上这个cookie
  • httpOnly: 如果设置了httpOnly就表明使用js不能获取到cookie内容

Accept-Encoding

浏览器告诉服务器可以支持的编码是什么

Content-Encoding

服务器告诉浏览器他采用的压缩实体的编码方式是什么,客户端收到请求的实体之后就用这个编码来进行解压缩

Transfer-Encoding

传输实体所使用的编码方式是什么

  • chunked: 如果请求的实体很大或者需要根据数据库动态生成,等待实体准备好需要的时间比较长,因此可以采用分开编码的方式,将实体分块传入给客户端。当返回的content-length为0的时候就表明已经传完了

connection:keep-alive

每一次的http都会进行一次三次握手的tcp连接,设置connection:keep-alive表明建立了一次tcp连接之后不要关闭连接,后面的http请求还是使用这次的tcp连接。但是这个tcp并不是一直保持连接,可以在服务器端设置

x-frame-options

告诉浏览器是否允许页面被嵌入到其他iframe或者frame或者object中。主要用于预防点击劫持攻击

cache-control

  • public: 响应可以被任何对象缓存(包括浏览器,代理服务器)
  • private: 用户可以缓存但是代理服务器不可以缓存
  • no-cache: 在发布缓存副本之前,强制高速缓存将请求提交给原始服务器进行验证
  • must-revalidate: 缓存必须在使用之前验证旧资源的状态,并且不可使用过期资源

DNT(Do Not Track)

表明用户对于网站追踪的偏好,允许用户指定自己是否更注重个人隐私还是定制化内容

X-DNS-Prefetch-Control

控制浏览器的DNS预获取的功能

referer

表示访问的来源信息
一下情况会发送referer字段:

  • 提交表单的时候
  • 加载静态资源的时候(js, css, 图片等)
  • 用户点击网页上的链接

referer的作用

  • 在xsrf攻击中可以判断referer的来源是否是合法的,从而决定请求是否被处理
  • 统计网站流量的贡献

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions