HTTP常用参数对照表

HTTP响应头和请求头信息对照表

HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。

通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
请求头标:允许客户端传递关于自身的信息和希望的响应形式。
响应头标:服务器和于传递自身信息的响应。
实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。

HTTP Request Header 请求头

Header	解释	示例

Accept	            指定客户端能够接收的内容类型	Accept: text/plain, text/html
Accept-Charset	    浏览器可以接受的字符编码集。	Accept-Charset: iso-8859-5
Accept-Encoding	    指定浏览器可以支持的web服务器返回内容压缩编码类型。	Accept-Encoding: compress, gzip
Accept-Language	    浏览器可接受的语言	Accept-Language: en,zh
Accept-Ranges	    可以请求网页实体的一个或者多个子范围字段	Accept-Ranges: bytes
Authorization	    HTTP授权的授权证书	Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control	    指定请求和响应遵循的缓存机制	Cache-Control: no-cache
Connection	        表示是否需要持久连接。(HTTP 1.1默认进行持久连接)	Connection: close
Cookie	            HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。	Cookie: $Version=1; Skin=new;
Content-Length	    请求的内容长度	Content-Length: 348
Content-Type	    请求的与实体对应的MIME信息	Content-Type: application/x-www-form-urlencoded
Date	            请求发送的日期和时间	Date: Tue, 15 Nov 2010 08:12:31 GMT
Expect	            请求的特定的服务器行为	Expect: 100-continue
From	            发出请求的用户的Email	From: user@email.com
Host	            指定请求的服务器的 域名:端口号 也可以是 IP:端口号	Host: www.zcmhi.com
Referer	            亲测,任何非首次请求都有这个参数, 该首部用于所有请求.告诉服务器我是从哪个页面链接过来的,即来路	Referer: http://www.zcmhi.com/archives/71.html
Origin              亲测,只有跨域请求或跳转时才有这个参数, 该首部用于 CORS 请求或者 POST 请求, 指示了请求来自于哪个站点。该字段仅指示服务器名称,并不包含任何路径信息。Origin: https://developer.mozilla.org            
If-Match	        只有请求内容与实体相匹配才有效	If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since   如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码	If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT
If-None-Match	    如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变	If-None-Match: “737060cd8c284d8af7ad3082f209582d”
If-Range	        如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为Etag	If-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since	只在实体在指定时间之后未被修改才请求成功	If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT
Max-Forwards        限制信息通过代理和网关传送的时间	Max-Forwards: 10
Pragma	            用来包含实现特定的指令	Pragma: no-cache
Proxy-Authorization	连接到代理的授权证书	Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range	            只请求实体的一部分,指定范围	Range: bytes=500-999
TE	                客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息	TE: trailers,deflate;q=0.5
Upgrade	            向服务器指定某种传输协议以便服务器进行转换(如果支持)	Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-Agent	        User-Agent的内容包含发出请求的用户信息	User-Agent: Mozilla/5.0 (Linux; X11)
Via	                通知中间网关或代理服务器地址,通信协议	Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning	            关于消息实体的警告信息	Warn: 199 Miscellaneous warning

请求头常用参数对用的设置

Cache-control:

Cache-Control: max-age=<seconds>
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache 
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached

[1] no-cache  ---- 不要读取缓存中的文件,要求向WEB服务器重新请求
[2] no-store    ---- 请求和响应都禁止被缓存
[2] max-age: ---- 表示当访问此网页后的max-age秒内再次访问不会去服务器请求,其功能与Expires类似,只是Expires是根据某个特定日期值做比较。一但缓存者自身的时间不准确.则结果可能就是错误的,而max-age,显然无此问题.。Max-age的优先级也是高于Expires的。
[3] max-stale  ---- 允许读取过期时间必须小于max-stale 值的缓存对象。 
[4] min-fresh ---- 接受其max-age生命期大于其当前时间 跟 min-fresh 值之和的缓存对象
[5] only-if-cached ---- 告知缓存者,我希望内容来自缓存,我并不关心被缓存响应,是否是新鲜的.
[6] no-transform   ---- 告知代理,不要更改媒体类型,比如jpg,被你改成png.


示例:
禁止缓存
Cache-Control: no-cache, no-store, must-revalidate
缓存静态资源
Cache-Control:public, max-age=31536000

请求Content-type常用的配置

下面这个是我在Chrome中复制到的案例,但是大小写这个问题我没找到.

下面这些不够看的话,具体看下面响应头的吧,那里的多一点.

Content-type 有请求设置的也有响应设置的,这里只说请求设置的.

而响应的 Content-type 则在下面的响应头信息后面记录.

Content-type 有将近200种,这种只写常用的三种吧.

  • Content-Type: application/x-www-form-urlencoded
最常见的 POST 提交数据的方式了。
浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。
首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。大部分服务端语言都对这种方式有很好的支持。
例如 PHP 中,$_POST['title'] 可以获取到 title 的值,$_POST['sub'] 可以得到 sub 数组。

很多时候,我们用 Ajax 提交数据时,也是使用这种方式。
例如 JQuery 的 Ajax,Content-Type 默认值都是「application/x-www-form-urlencoded;charset=utf-8」。

下面这个是请求参数, 在通过浏览器请求的时候,如Chrome点开控制台中的请求头.选择原生查看,可以看到POST的请求参数,都是以k=v&k=v的形式请求.
我在PHP中使用 file_get_contents 请求时,如果要设置POST请求头,在请求头中添加也会这么干,
做一个这样的操作 'content' => http_build_query($postData),
_csrfToken=&username=json%40163.com&password=sssss&geetest_challenge=2aeeee938f8767f9e49725347d55a48bfi&geetest_validate=54cbc95414d9d7d397c21b1b9b75c3bd&geetest_seccode=54cbc95414d9d7d397c21b1b9b75c3bd%7Cjordan

我用PHP写的简单案例:

   $data        = [
        'uid'         => '3',
        'coin'        => 'btc',
        'amount'      => '10',
        'transfer_id' => rand(1, 100),
        'from'        => '2',  //1主站,2OTC
        'to'          => '1',
    ];
    $context = stream_context_create([
        'http' => [
            'method'  => 'POST',
            'timeout' => '3',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => http_build_query($data),
        ],
    ]);
    $result  = file_get_contents(
        $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . '/api/finance/transfer',
        false,
        $context
    );

完整请求案例:

POST /web/user/account HTTP/1.1
Host: www.cetest.com
Connection: keep-alive
Content-Length: 211
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
Origin: http://www.cetest.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
DNT: 1
Content-Type: application/x-www-form-urlencoded
Referer: http://www.cetest.com/user/login/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: __zlcmid=qIhvlOPaskTFPJ; _ga=GA1.2.588344771.1547546595; USER_PW=8ef050580742753b0f27e9882389960f; PHPSESSID=acf73210c191350915c2a169c72ee2ee; languageStyle=1; lang=en_US


_csrfToken=&username=json%40163.com&password=sssss&geetest_challenge=2aeeee938f8767f9e49725347d55a48bfi&geetest_validate=54cbc95414d9d7d397c21b1b9b75c3bd&geetest_seccode=54cbc95414d9d7d397c21b1b9b75c3bd%7Cjordan


  • Content-Type: multipart/form-data; boundary=---------------------------13803311712107636103297225856
使用表单上传文件时,必须让 <form>标签中的 enctype参数 等于这个值。
如:
<form action="/user/login" method="post" enctype="multipart/form-data">
</form>

通过浏览器,比如Chrome或者Firefox都可以从请求头中看到该请求参数
上面提到的这两种 POST 数据的方式,都是浏览器原生支持的,而且现阶段标准中原生 <form> 表单也只支持这两种方式(通过 <form> 元素的 enctype 属性指定,默认为 application/x-www-form-urlencoded。其实 enctype 还支持 text/plain,不过用得非常少)。

这个例子稍微复杂点。
首先生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。
然后 Content-Type 里指明了数据是以 multipart/form-data 来编码,本次请求的 boundary 是什么内容。
消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary 开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容(文本或二进制)。
如果传输的是文件,还要包含文件名和文件类型信息。
消息主体最后以 --boundary-- 标示结束。关于 multipart/form-data 的详细定义,请前往 rfc1867 查看。
这种方式一般用来上传文件,各大服务端语言对它也有着良好的支持。

随着越来越多的 Web 站点,尤其是 WebApp,全部使用 Ajax 进行数据交互之后,我们完全可以定义新的数据提交方式,给开发带来更多便利。


如果是Chrome浏览器,从控制台在请求头一栏滑到最下面, 查看formdata里面就是下面这个样子所有的请求参数都在里面
如果是Firefox,从控制台点开参数一栏看到下面这种

Chrome浏览器

------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="_csrfToken"

akdsX1lBdmFVTXo5cGhIS05QZEVCb2cyYWlVdEd2bUhvT0VYbTFSaFF2aklOOUEtdXNidjdCMV9ONmJENDlzS2lGNzRNaWxlbkhVR0Z4VDc5clNONVE9PQ==
------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="intl"

6
------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="name"

asdfsss
------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="id_type"

1
------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="id_number"

asdfasdf
------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="photo[]"; filename="0BC4C4D581D1895A6BD859FDE53FE72A.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="photo[]"; filename="0CA48D7D20CA37EB22709B8DC07CF5F1.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V
Content-Disposition: form-data; name="photo[]"; filename="0FF5B38C59A85EFD49EB4940467798FC.png"
Content-Type: image/png


------WebKitFormBoundaryhWoGW1ZpIbxmmJ0V--


FireFox浏览器


-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="_csrfToken"

NmR3TGhaWmF1ZzJzaUtNbTBmaE85V3ZReGt3R0pOUUxobXo3OC0xLVc1V0pDSTEzeFNjOEtGZFRGM0xUUWZmZGdUTW1xTEFKQTd4T3RlQ0NodTNUU1E9PQ==
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="intl"

54
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="name"
..........下面的部分都省略了基本上和Chrome中的一样....................



完整请求案例:
Host: www.cetest.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://www.cetest.com/security/userauth/
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=---------------------------13803311712107636103297225856
Content-Length: 224703
Connection: keep-alive
Cookie: lang=zh_CN; __zlcmid=p2hjuk7Mu2t6bt; _ga=GA1.2.1972438163.1546501161; USER_PW=505a4b3208e94d00c0d0aa2c0215ef8e; PHPSESSID=63166bc005232efd3b7fd2ade95bddaf; languageStyle=1; USER=1%2Cjson%40163.com%2C%2C%2C0%2C0%2C1%2C0


-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="_csrfToken"

NmR3TGhaWmF1ZzJzaUtNbTBmaE85V3ZReGt3R0pOUUxobXo3OC0xLVc1V0pDSTEzeFNjOEtGZFRGM0xUUWZmZGdUTW1xTEFKQTd4T3RlQ0NodTNUU1E9PQ==
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="intl"

54
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="name"

111
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="id_type"

1
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="id_number"

aaaaa
-----------------------------13803311712107636103297225856
Content-Disposition: form-data; name="photo[]"; filename="0BC4C4D581D1895A6BD859FDE53FE72A.jpg"
Content-Type: image/jpeg

下面还有一堆这样的东西, 应该是上传的文件就不全部粘过来了, 作为理解内容即可.
ÿØÿà

转载于:https://my.oschina.net/chinaliuhan/blog/3064201

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值