请求头(request headers)和响应头(response headers)解析

时间:2022-07-22 19:58:08

*****************请求头(request headers)*****************

POST /user/signin HTTP/1.1    --请求方式 文件名 http版本号
Host: passport.cnblogs.com     --请求地址
Connection: keep-alive             --Connection决定当前的事务完成后,是否会关闭网络连接。如果该值是“keep-alive”,网络连接就是持久                                                             的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成。
Content-Length: 557             --发送给HTTP服务器的长度
Origin: https://passport.cnblogs.com        --起源是来自哪里
X-Requested-With: XMLHttpRequest       --表明是ajax异步请求
Referer: https://passport.cn blogs.com/user/signin?ReturnUrl=http://www.cnblogs.com/fighter007/p/8422868.html
                                                                  --提供上下文服务器,告诉服务器我是从哪里来的,一般用于网站流量统计。

Accept-Encoding: gzip, deflate, br      --浏览器申明自己接收的编码方式:通常指定压缩、是否支持压缩、支持什么方式压缩(gzip/default)
Accept-Language: zh-CN,zh;q=0.9     --浏览器申明自己接收的语言
Accept: application/json, text/javascript, */*; q=0.01--浏览器接收的媒体类型 application/json, text/javascript  */* 代表浏览器可以处理所有类型
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
                    --告诉HTTP服务器客户端浏览器使用的操作系统和浏览器的版本和名称

Content-Type: application/json; charset=UTF-8     --浏览器接收的内容类型、字符集

补充:常见的媒体格式Content-Type类型如下:

  • text/html : HTML格式
  • text/plain :纯文本格式
  • text/xml :  XML格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png:png图片格式

以application开头的媒体格式类型:

  • application/xhtml+xml :XHTML格式
  • application/xml     : XML数据格式
  • application/atom+xml  :Atom XML聚合格式
  • application/json    : JSON数据格式
  • application/pdf       :pdf格式
  • application/msword  : Word文档格式
  • application/octet-stream : 二进制流数据(如常见的文件下载)
  • application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:

  • multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

-------------以上就是我们在日常的开发中,经常会用到的若干content-type的内容格式。

Cookie: UM_distinctid=15f9ef04ee72e5-0a65edd08d82c2-5b44271d-100200-15f9ef04ee92f6; _ga=GA1.2.2033933919.1494296675; __utma=226521935.2033933919.1494296675.1513510580.1513510580.1; __utmz=226521935.1513510580.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SyntaxHighlighter=python; _gid=GA1.2.1677447691.1517822201; ASP.NET_SessionId=nepkrr03bth2xgcgyeqadjuz; SERVERID=34e1ee01aa40e94e2474dffd938824db|1518434521|1518434492
--cookies:是服务器发送到浏览器并保存在本地的一小块数据,存储在header中,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上,通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态.

*****************响应头(response headers)解析*****************
HTTP/1.1 200 OK                   --响应的状态码 200表示正常应答
Date: Mon, 12 Feb 2018 11:22:13 GMT                      --生成消息的具体时间和日期
Last-Modified:Wed, 21 Dec 2011 09:09:10 GMT        --申明资源的最后修改日期和时间
Content-Type: application/json; charset=utf-8   --http服务器告诉浏览器自己响应的对象类型和字符集(并且告诉客户端实际返回的内容的内容类型)

更多类型,例如:
Content-Type:text/html; charset=utf-8
Content-Type:text/html;charset=GB2312
Content-Type: image/jpeg

Content-Length: 54               --http服务器的响应实体正文的长度
Content-Language:da        --http服务器告诉浏览器自己响应的语言
Content-Encoding:gzip      --http服务器表名自己使用了什么压缩方法
Connection: keep-alive         --Connection决定当前的事务完成后,是否会关闭网络连接。如果该值是“keep-alive”,网络连接就是持久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成
Cache-Control: private          -- "private" 表示该响应是专用于某单个用户的,中间人不能缓存此响应,该响应只能应用于浏览器私有缓存中。

*****
补充:"public" 指令表示该响应可以被任何中间人(译者注:比如中间代理、CDN等)缓存。
若指定了"public",则一些通常不被中间人缓存的页面(译者注:因为默认是private)
(比如 带有HTTP验证信息(帐号密码)的页面 或 某些特定影响状态码的页面),将会被其缓存。
而 "private" 则表示该响应是专用于某单个用户的,中间人不能缓存此响应,该响应只能应用于浏览器私有缓存中。
*****

X-AspNetMvc-Version: 5.2         --asp.net版本号
X-AspNet-Version: 4.0.30319     --asp.net技术的版本号
X-Powered-By: ASP.NET            --表示网站是由什么技术开发
Set-Cookie: SERVERID=34e1ee01aa40e94e2474dffd938824db|1518434533|1518434492;Path=/
                    --Set-Cookie是非常重要的header, 用于把cookie 发送到客户端浏览器, 每一个写入cookie都会生成一个Set-Cookie.