HTTP 协议常见首部字段
首部字段
1、HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器处理请求和响应提供了所必须的信息。
2、HTTP首部字段是由首部字段名和字段值构成,中间用冒号“:”隔开。字段值对应单个首部字段可以有多个值,用逗号“,”隔开。
3、根据实际用途,分为四种类型。
通用首部字段:请求报文和响应报文两方都会使用的首部。
请求首部字段:从客户端向服务器发送请求报文时使用的首部。
响应首部字段:从服务器向客户端返回响应报文时使用的首部。
实体首部字段:针对请求报文和响应报文的实体部分使用的首部。
4、HTTP/1.1协议定义了47种首部字段。
通用首部字段9种
请求首部字段19种
响应首部字段9种
实体首部字段10种
5、在HTTP协议通信交互中使用到的首部字段不限于RFC2616中定义的上面的47种,还有一些非正式的首部字段,比如Cookie、Set-Cookie和Content-Disposition等,统一归纳在RFC4229 HTTP Header Field Registrations中。
6、HTTP首部字段根据定义缓存代理和非缓存代理的行为分为两种类型:
端到端首部(End-to-end Header)
此类别中的首部会转发给请求/响应对应的最终接受目标,而且必须保存在由缓存生成的响应中,另外规定它必须被转发。
逐跳首部(Hop-by-hop Header)
此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发;http1.1和之后的版本,如要使用该首部,需提供Connection首部字段。
下面列举下HTTP/1.1中的逐跳首部字段,除了这8个,其他所有字段都属于端到端首部。
Connection、Keep-Alive、Proxy-Authenticate、Proxy-Authorization、Trailer、TE、Transfer-Encoding、Upgrade。
常见首部字段
虽然首部字段很多,但是常用的却没有那么多,这里列举下常用的首部字段,随时补充:
(1)User-Agent
属于请求首部字段,HTTP客户端程序的信息。
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1
User-Agent: Fiddler
首部字段 User-Agent 会将创建请求的浏览器和用户代理名称等信息传达给服务器。
由网络爬虫发起请求时,有可能会在字段内添加爬虫作者的电子邮件地址。此外,如果请求经过代理,那么中间也很可能被添加上代理服务器的名称。
(2)Content-Length
Content-Length: 15000
首部字段 Content-Length 表明了实体主体部分的大小(单位是字节)。对实体主体进行内容编码传输时,不能再使用 Content-Length 首部字段。
(3)Content-Type
Content-Type: text/html; charset=utf-8
Content-Type: application/json; charset=utf-8
Content-Type: application/octet-stream
首部字段 Content-Type 说明了实体主体内对象的媒体类型。和首部字段 Accept 一样,字段值用 type/subtype 形式赋值。
参数 charset 使用 ISO-8859-1 或 euc-jp 等字符集进行赋值。
下面是导出Excel需要使用的头部设置:
Content-Type: application/vnd.ms-excel; charset=utf-8
Content-disposition:attachment; filename=xxxx.xls
form 表单的 enctype 属性和这个请求头 Content-Type 有关系。
(1)enctype属性可能的值:application/x-www-form-urlencoded | multipart/form-data | text/plain。属性默认值是:application/x-www-form-urlencoded。
application/x-www-form-urlencoded:表示普通的form表单元素提交,在发送前编码所有字符,提交的参数格式遵循:name=value&name=value&name=value...。
multipart/form-data:表示不对字符编码。直接提交二进制文件流。在使用包含文件上传控件的form表单时,必须使用该值。
text/plain:表示空格转换为 "+" 加号,但不对特殊字符编码。
(2)当我们使用form表单上传文件时post请求的时候,需要在form表单中添加enctype="multipart/form-data"属性。
请求头中有一个Content-type字段,会声明数据编码格式。浏览器会自动添加 Content-Type:multipart/form-data。
如果form中没有指定enctype,浏览器会自动添加默认的 Content-Type:application/x-www-form-urlencoded;charset=utf-8。
HTTP 协议常见首部字段的更多相关文章
- http协议(十)实体首部字段
1.定义 包含在请求和响应中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息 2.Allow 通知客户端能够支持的Request-URI指定资源的所有http方法 如果服务器接收到不支 ...
- http协议(八)请求首部字段
请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...
- http协议(七)通用首部字段
通用首部字段的意思,就是:请求和响应报文双方都会使用的首部 1.Cache-Control 通过指定它的指令,能操作缓存的工作机制 指令参数是可选的,多个指令通过“,”分隔 Cache-Control ...
- HTTP协议08-请求首部字段
请求首部字段 请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息.客户端信息,对响应内容相关的优先级等内容 1)Accept 通知服务器,用户代理能够处理的媒体类型及媒 ...
- HTTP协议07-通用首部字段
通用首部字段 通用首部字段是指,请求报文和响应报文双方都会使用的首部. 1)Cache-Control 通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制. 指令的参数可以多选, ...
- http协议基础(七)通用首部字段
通用首部字段的意思,就是:请求和响应报文双方都会使用的首部 1.Cache-Control 通过指定它的指令,能操作缓存的工作机制 指令参数是可选的,多个指令通过“,”分隔 Cache-Control ...
- http协议基础(八)请求首部字段
请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...
- http协议基础(十)实体首部字段
1.定义 包含在请求和响应中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息 2.Allow 通知客户端能够支持的Request-URI指定资源的所有http方法:如果服务器接收到不支 ...
- HTTP协议图--HTTP 报文首部之首部字段(重点分析)
1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...
随机推荐
- VS2015一新建项目就出现未将对象引用设置到对象的实例怎么办?[z]
https://blog.csdn.net/tiandyoin/article/details/79722800 在控制面板-卸载或修复程序太麻烦,而且不一定保证解决,可以这样------打开--C: ...
- 十四、new Comparator<T>实现多重排序结果
1.编写实现类 package com.abcd; public class Person{ private String name; private int age; private int sal ...
- 获取txt md5值上传文件完整性校验
网络上传文件到服务器 做md5 校对.判断文件是否破坏 首先求txt文件的md5值 ,1万条数据 求出的值 文件MD5:e5467b6a8e3c26af8c5af0bda3739280 服务器处理程序 ...
- Python集合框架
- Opecv + Anaconda 读取视频(windows)
前言:之前一直用的是python(x,y),但是发现在使用opencv时容易出现一些pythonw.exe停止工作的问题.后来发现自己的操作系统是64位的,却安装了32位的python(x,y),虽然 ...
- g++编译X265
自己参考用: msys2 编译X265的命令 编译用工具安装 pacman -S git make tar automake autoconf libtool pkg-config mingw-w64 ...
- 图解Golang的GC算法
虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了. 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mar ...
- P4149 [IOI2011]Race
对于这道题,明显是点分治,权值等于k,可以用桶统计树上路径(但注意要清空); 对于每颗子树,先与之前的子树拼k,再更新桶,维护t["len"]最小边数; #include < ...
- Hibernate框架:CRM练习--保存客户
crm:customer ralation manager 客户关系管理系统 一.准备 1.创建web项目 2.导包 最终为: 3.引入静态页面 将文件复制放入项目的WebContent目录下面: 4 ...
- 解决:Adobe Acrobat Pro中设置背景颜色后,出现白色条纹
找到 编辑->首选项->页面显示->渲染->使用2D图形加速 取消即可