专栏首页京程一灯Http常用头部整理

Http常用头部整理

Http常用头部整理

http协议

HTTP是一个属于应用层的面向对象的协议,其主要特点为:

1. 支持客户端/服务器模式;

2. 简单快速的通信;

3. HTTP允许传输任意类型的数据对象。类型由Content-Type加以标记。

4. 无连接、无状态协议;

http报文

用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。

请求报文和响应报文的首部内容由以下数据组成。

  • 请求行 包含用于请求的方法,请求URI和HTTP版本;
  • 状态行 包含响应结果的状态码,原因短语和Http版本;
  • 首部字段 一般有4种首部,分别是:通用首部、请求首部、响应首部和实体首部。
  • 其他(Cookie等)

HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供 所需要的信息。

下来对HTTP的常用首部字段进行详细介绍

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

  • 通用首部字段(General Header Fields)请求报文和响应报文两方都会使用的首部。
  • 请求首部字段(Request Header Fields)从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
  • 响应首部字段( Response Header Fields)从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
  • 实体首部字段(Entity Header Fields)针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

HTTP/1.1 首部字段一览

通用首部字段

首部字段名

说明

Cache-Control

控制缓存的行为

Connextion

逐跳首部、连接的管理

Date

创建报文的日期时间

Pragma

报文指令

Transfer-Encoding

指定报文主体的传输编码方式

Cache-control: max-age=5 表示当访问此网页后的5秒内再次访问不会去服务器 

Cache-Control: no-cache:这个很容易让人产生误解,使人误以为是响应不被缓存。
实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。 

Cache-Control: no-store:这个才是响应不被缓存的意思。 

Pragma: no-cache:跟Cache-Control: no-cache相同,Pragma: no-cache兼容http 1.0 ,Cache-Control: no-cache是http 1.1提供的。 

因此,Pragma: no-cache可以应用到http 1.0 和http 1.1,而Cache-Control: no-cache只能应用于http 1.1.
另外,客户端不带这个头部请求的话,如果使用本地缓存的话,返回状态码为304。
如果请求头中有cache-control:no-cache头部。则不使用本地缓存,返回状态码不为304(一般为200)。
这里,恰好解决了我之前的一个问题:http://blog.chinaunix.net/uid-1757778-id-5753705.html

请求首部字段

首部字段名

说明

Accept

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

Accept-Charset

优先的字符集

Accept-Encoding

优先的内容编码

Accept-Language

优先的语言

Host

指定资源所在服务器

If-Match

比较实体标记(ETag)

If-Modified-Since

比较资源的更新时间

If-None-Match

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

Referer

对请求中URI的原始获取方

User-Agent

Http客户端程序的信息

Accept属于请求头,表示客户端希望接收的数据类型。 这里有对If-Modified-Since和Last-Modified的一些不错的解释,可以点击这里查看 合理使用If-None-Match和If-Modified-Since头,可以减少流量带宽。

响应首部字段

首部字段名

说明

Accept-Range

是否接受字节范围请求

ETag

资源的匹配信息

Location

另客户端重定向至指定URI

Server

Http服务器的安装信息

Vary

代理服务器缓存的管理信息

实体首部字段

首部字段名

说明

Allow

资源可支持的Http方法

Content-Encoding

实体主体适用的编码方式

Content-Language

实体主体的自然语言

Content-Length

实体主体的大小(字节)

Content-Location

替代对应资源的URI

Content-Type

实体主体的媒体类型

Expires

实体主体过期的日期时间

Last-Modified

资源的最后修改日期时间

从以上这些之外,还有比如Cookie、Set-Cookie和Content-Disposition等在其他RFC中定义的首部字段也经常被用到。 下边为请求一个网页的头部信息实例:

General:

Request URL:http://blog.csdn.net/muzizongheng/article/details/46795243

Request Method:GET

Status Code:200 OK

Remote Address:59.110.88.38:80

Referrer Policy:unsafe-url

Response Header:

Cache-Control:private, max-age=0, must-revalidate

Connection:keep-alive

Content-Encoding:gzip

Content-Type:text/html; charset=utf-8

Date:Mon, 17 Jul 2017 11:16:17 GMT

ETag:W/"ac50f3b564a78d9d789c1aa58f6ae866"

Keep-Alive:timeout=20

Server:openresty

Transfer-Encoding:chunked

Vary:Accept-Encoding

X-Powered-By:PHP 5.4.28

Request Headers:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Encoding:gzip, deflate, sdch

Accept-Language:zh-CN,zh;q=0.8

Cache-Control:max-age=0

Connection:keep-alive

Cookie:uuid_tt_dd=144036427222764724_20151210; bdshare_firstime=1449739242207; UN=qq_32072475; UE=""; BT=1487900862896; uuid=2f6e329e-9f88-4865-8122-f9b62fdbb659; avh=62976388%2c46795243; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1500288834,1500289008,1500290189,1500290200; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1500290200; dc_tos=ot8fbt; dc_session_id=1500290201006

Host:blog.csdn.net

If-None-Match:W/"ac50f3b564a78d9d789c1aa58f6ae866"

Referer:https://www.baidu.com/link?url=Wu7VlsW2GRUpclU_zgZy9v_qJkZl1rHrjCTURquEV9PS0fEb1W5xkKsGoufmZVycG5aA8jlSdONEoM8d8mMbuP7vx91QgDaeU5eN7ty9WK7&wd=&eqid=ec2de144000058ef00000006596c9c69

Upgrade-Insecure-Requests:1

User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

本文分享自微信公众号 - 京程一灯(jingchengyideng)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-04

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实用!前端必备常用正则表达式

    熟练而优雅的使用正则,对于程序员来讲,实在太有意义了(即便非此类者,也是好处多多);它辅助处理复杂的文本查询和字符串操作,不仅能用之于代码,还能雅之于编辑器,浏...

    疯狂的技术宅
  • 避免这些常见的JavaScript错误

    在今天,JavaScript是最流行的编程语言之一,如果你希望钻研JavaScript,这里有几个需要避免的问题

    疯狂的技术宅
  • 【JS】装饰器让你的代码更简洁

    当我们在使用JavaScript时,有时需要用到 setTimeout函数来强制代码延迟运行。比如:

    疯狂的技术宅
  • HTTP首部字段完全解析

    http协议是前端开发人员最常接触到的网络协议。在开发过程中,尤其是调试过程中避免不了需要去分析http请求的详细信息。在这其中头部字段提供的信息最多,比如通过...

    寻找石头鱼
  • rfc7230 Message Syntax and Routing

    HTTP使用.来标识协议版本。本规范定义的版本为"1.1"。版本号表示发送端遵从对应HTTP版本的实现需求。

    charlieroro
  • LGC:转录本蛋白编码潜能预测工具

    中科院北京基因组研究所搭建了国内的大数据中心BIGD, 拥有海量计算资源,5000以上CPU,8PB以上的存储,借助庞大的计算资源,存储了高通量测序产生的各种组...

    生信修炼手册
  • 干货 | 带有业务逻辑的比对思想在接口测试中的应用

    虞斌,携程机票BU资深测试开发工程师,主要负责携程机票测试工具以及基础组件的研发。对自动化测试领域有较深刻的认识,对新技术有着浓厚的兴趣。

    携程技术
  • 【web必知必会】——图解HTTP(上)

      本篇总结关于http的相关知识,主要内容参考如下导图: ?   主要讲解的内容有:   1 URL与URI的区别。   2 请求报文与相应报文的内容。   ...

    用户1154259
  • 【WP】MOCTF-逆向题-writeup(上)

    之前寒假做 moctf 的逆向题时,是看着网上各位师傅们的 writeup 做的,他们的后三题都是用 IDA 做的,直接 F5 看伪代码分析出来的,最近在用 O...

    yichen
  • 浅谈集成商与传统IDC如何向云计算业务转型

    笔者作为某世界500强IT 公司解决方案总监走过了很多客户,有机会拜访了很多系统集成商、行业软件开发商与IDC服务商。可以说在今天云计算蓬勃发展的时间点,无论是...

    静一

扫码关注云+社区

领取腾讯云代金券