专栏首页JMCui简述 HTTP 首部字段.

简述 HTTP 首部字段.

一、概述

HTTP 首部字段是构成 HTTP 报文的要素之一。在客户端与服务器之间以 HTTP 协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用。

使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。

HTTP/1.1 首部字段根据实际用途被分为以下 4 种类型:

  • 通用首部字段( General Header Fields)
  • 请求首部字段( Request Header Fields)
  • 响应首部字段( Response Header Fields)
  • 实体首部字段( Entity Header Fields)

二、通用首部字段

通用首部字段指的是请求报文和响应报文两方都会使用的首部。

首部字段名

说明

Cache-Control

控制缓存的行为

Date

创建报文的日期时间

Pragma

报文指令,旧版本遗留字段,作为旧版本兼容字段

Connection

逐跳首部字段、控制不再转发给代理的首部字段、管理持久连接

Trailer

逐跳首部字段,报文末端的首部一览

Transfer-Encoding

逐跳首部字段,指定报文主体的传输编码方式

Upgrade

逐跳首部字段,升级为其他协议

Via

代理服务器的相关信息

Warning

错误通知

三、请求首部字段

请求首部字段指的是从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。

首部字段名

说明

Accept

用户代理可处理的媒体类型

Accept-Charset

可处理的优先的字符集

Accept-Encoding

可处理的优先的内容编码

Accept-Language

可处理的优先的语言(自然语言)

AuthorizationWeb

认证信息

Expect

期待服务器的特定行为

From

用户的电子邮箱地址

Host

请求资源所在服务器,多用于单台服务器分配多个域名的场景

If-Match

比较实体标记(ETag)

If-Modified-Since

比较资源的更新时间

If-None-Match

比较实体标记(与If-Match相反)

If-Range

资源未更新时发送实体Byte的范围请求

If-Unmodified-Since

比较资源的更新时间(与If-Modified-Since相反)

Max-Forwards

最大传输逐跳数,配合 TRACE 请求使用

Proxy-Authorization

逐跳首部字段,代理服务器要求客户端的认证信息

TE

逐跳首部字段,传输编码的优先级

Range

实体的字节范围请求

Referer

对请求中URI的原始获取方

User-Agent

请求的浏览器和用户代理名称等信息

Cookie

Cookie 信息

DNT

Do Not Track,拒绝个人信息被收集,表示拒绝被精准广告追踪的一种方法,0-同意 1-拒绝

四、响应首部字段

响应首部字段指的是从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容, 也会要求客户端附加额外的内容信息。

首部字段名

说明

Accept-Ranges

是否接受字节范围请求

Age

源服务器多久前创建了响应,单位为秒

ETag

资源的匹配信息,唯一性标识

Location

令客户端重定向至指定URI

Proxy-Authenticate

逐跳首部字段,代理服务器对客户端的认证信息

WWW-Authenticate

服务器对客户端的认证信息

Retry-After

告知客户端应该多久之后再次发送请求

Server

当前服务器上安装的 HTTP 服务器应用程序的信息

Vary

对缓存进行控制,源服务器会向代理服务器传达关于本地缓存使用方法的命令

Set-Cookie

通知客户端开始状态管理所使用的Cookie信息

X-Frame-Options

用于控制网站内容在其他 Web 网站的 Frame 标签内的显示问题。主要目的是为了防止点击劫持(clickjacking)攻击,可设置 DENY 或 SAMEORIGIN

X-XSS-Protection

针对跨站脚本攻击(XSS)的一种对策,用于控制浏览器 XSS 防护机制的开关,0-关闭,1-打开

五、实体首部字段

实体首部字段指的是针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

首部字段名

说明

Allow

资源可支持的HTTP方法

Content-Encoding

实体主体适用的编码方式

Content-Language

实体主体的自然语言

Content-Length

实体主体的大小(单位:字节)

Content-Location

报文主体返回资源对应的 URI。Location 对应的是响应,而 Content-Location 对应的是要返回的实体

Content-MD5

一串由 MD5 算法生成的值,其目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达

Content-Range

实体主体的位置范围

Content-Type

实体主体的媒体类型

Expires

实体主体过期的日期时间,若不希望被缓存可设置成与 Date 值一致

Last-Modified

资源的最后修改日期时间

tips: 逐跳首部字段(Hop-by-hop Header)指的是只对单次转发有效, 会因通过缓存或代理而不再转发。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JVM系列二(垃圾收集算法).

    这种算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。

    JMCui
  • String 的 intern() 方法解析

    JDK7 之前和之后的版本,String 的 intern() 方法在实现上存在差异,本文的说明环境是 JDK8,会在文末说明 intern() 方法的版本差异...

    JMCui
  • 基于缓存或zookeeper的分布式锁实现

     我们常常将缓存作为分布式锁的解决方案,但是却不能单纯的判断某个 key 是否存在 来作为锁的获得依据,因为无论是 exists 和 get 命名都不是线程安全...

    JMCui
  • 浅谈如何辨别一个程序员的水平高低?

    用户2201316
  • 从TCP的三次握手和四次挥手说起

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

    acupt
  • 接口设计技巧和最佳实践

    你的响应应该是在代码中严格定义的嵌套数据业务模型,不要依赖数据库查询结果映射,或者其他操作

    公众号_松花皮蛋的黑板报
  • 关于JSON.stringify和Unicode编码,需要注意的几点

    1JSON.stringify会自动把所要转换内容中的汉字转换为Unicode编码 2浏览器间有差别,个别浏览器会把将要提交表单内容中的Unicode编码自动转...

    李海彬
  • 关于JSON.stringify和Unicode编码,需要注意的几点

    1JSON.stringify会自动把所要转换内容中的汉字转换为Unicode编码 2浏览器间有差别,个别浏览器会把将要提交表单内容中的Unicode编码自动转...

    李海彬
  • Oracle 12c 多租户专题|12cR2中PDB内存资源管理

    原文链接 https://oracle-base.com/articles/12c/multitenant-memory-resource-managemen...

    沃趣科技
  • gRPC in ASP.NET Core 3.0 -- Protocol Buffer(1)

    现如今微服务很流行,而微服务很有可能是使用不同语言进行构建的。而微服务之间通常需要相互通信,所以微服务之间必须在以下几个方面达成共识:

    solenovex

扫码关注云+社区

领取腾讯云代金券