HTTP请求头
常用请求头
请求头 | 描述 | 备注 |
---|
Accept | 告诉web服务器自己接收什么媒体类型。 | |
Accept-Charset | 浏览器接收内容的字符集,通常是utf-8。 | |
Accept-Encoding | 浏览器接收的编码方法。例如指定是否压缩,若支持压缩的话支持压缩方式,具体如常见的Accept-Encoding: gzip, deflate. | |
Accept-Language | 浏览器接收的语言。 | |
Accept-Ranges | Web服务器表明自己是否接受获取某个实体的一部分(比如文件的一部分)请求,这里主要用于部分文件的传输,bytes字段表示接受传输多大长度内容,none表示不接受。 | |
Allow | 设置服务器接受的请求的方法,例如GET、POST、PUT,如果不支持,则返回405。 | |
Authorization | 当客户端接收到来自web服务器的WWW-Authenticate响应时,后面可以用该头部来携带自己的身份验证信息给web服务器直接进行认证。 | |
Cache-Control | 用来申明强缓存 | |
no-cache | 不使用缓存实体,要求去web服务器去请求数据。 | |
max-age | 设置的缓存过期的时间。 | |
no-store | 不缓存。 | |
Connection | 长连接(持续连接)相关设置。节省TCP连接时间开销。常用设置如下: | |
close | 告诉web服务器,在完成本次请求响应后断开连接,无需等待后续请求。 | |
keep-alive | 保持连接一段时间,等待后续请求,如果浏览器请求保持连接,则头部表明需要web服务器保持连接的时长(以秒为单位),例如:keep-alive: 200。http1.1中会默认设置开启长连接。 | |
Content-Encoding | 与请求头的Accept-Encoding相互呼应,web服务器表明返回内容是按何种方式压缩,例如:Content-Encoding: gzip。 | |
Content-Language | 与请求头中的Accept-Language相呼应,告诉浏览器响应的媒体对象的语言。 | |
Content-length | Web服务器告诉浏览器请求内容的长度。 | |
Content-Range | Web服务器表明响应包含的部分对象的为整个对象的哪个部分。 | |
Content-Type | 与请求头的Accept相呼应,表明web服务器告诉浏览器相应内容的类型。 | |
Etag | 对象的标志值。一个文件如果被修改了,其Etag值也会被修改。Etag和Last-Modified都是设置的协商缓存。例如前一次请求某个js文件时获取了服务器相应传回来的Etag字段,当再次请求该文件时会在If-None-Match字段中带上Etag的值。web服务器会根据这个Etag值判断文件和先前比是否改变了。 | |
Expires | http1.1之前时代设置强缓存的字段。是web服务器告诉客户端的一个具体过期的时间点(服务器时间),需要客户端和服务端时间同步,若客户端时间不准确,可能现没有利用缓存的情况,所以http1.1中建议设置Cache-control。例如:Expires:Sat,23 May 2009 10:02:12 GMT。 | |
Host | 客户端指定自己访问的web服务器的域名/IP地址及端口号。例如:Host: www.baidu.com。 | |
If-None-Match | 对应Etag,是客户端发送给服务端的。为上一次web服务器响应的Etag值。 | |
If-Modified-Since | 对应Last-Modified, 是客户端发送给服务器的,为上一次web服务器响应的Last-modified的值。 | |
摘自
GET发送协议
1GET /api/get?param=1¶m=2 HTTP/1.1\r\nAccept: */*\r\nHost: api.linuxcrypt.cn\r\nUser-Agent: ESP8266_RTOS_SDK/v3.2 ESP8266\r\nConnection: Keep-Alive\r\n\r\n
POST发送协议
1POST /api/login.do HTTP/1.1\r\nAccept: */*\r\nContent-Length: 20\r\nContent-Type: application/x-www-form-urlencoded; charset=utf-8\r\nHost: api.linuxcrypt.cn\r\nUser-Agent: ESP8266_RTOS_SDK/v3.2 ESP8266\r\nConnection: Keep-Alive\r\n\r\nparam1=value1¶m2&value2"
2
3"Content-Length: 21", 200的计算是len(param1=value1¶m2&value2)
评论