今天给大家解读一下HTTP协议的请求及相应的头的意义:
HTTP请求:
一个请求行,若干请求头,实体内容,如下:
GET /books/java.html HTTP/1.1 -----------------请求行:请求方式,请求资源名称,使用的HTTP协议版本号
Accept:*/* 客户机什么数据类型都支持,text/html,image-------------
Accept-Charset:ISO-8859-1 客户机采用的编码方式|
Accept-Language:en-us客户机使用的语言环境|
Connection:Keep-Alive 或者close,连接后断开还是保持连接|
Host: localhost客户机想访问的主机名>--------多个消息头,描述客户端请求哪台主机,以及客户端的一些环境信息
If-Modified-Since: 服务器通知浏览器上次的更新时间,浏览器带给服务器,上次访问时间(提高浏览器效率)
Refere: http://localhost/links.asp 告诉服务器从哪来的,(防盗链)|
User-Agent:Mozilla/4.0 客户机软件环境|
Cookie:给服务器带数据|
Accept-Encoding:gzip,deflate客户机 支持的数据压缩格式------
Range:1000-2000 1000- 把下载的资源1000以后的 1000:最后一千个字节(断电续传)
-------------------------------------------空行
-------------------------------------------------------
以下都为内容行
-------------------------------------------------------
请求方式:
POST,GET,PUT,DELETE,OPTIONS,HEAD
默认是GET
用于向服务器请求资源
GET方式,请求的数据加在url地址中,?xx=xxx&yy=yyy
POST方式传输的数据量无限制,且提交的数据放在数据体内
HTTP响应:
一个状态行,若干消息头,以及实体内容:
HTTP/1.1 200 OK : 协议,状态码(100-199成功且进一步才能完成,200-299,成功且响应完成,302,到别处去,304,307去找缓存,400-499,客户端请求错误了,没有资源404无资源,403没权限,500-599服务器端错误,500服务器资源出问题), 说明-----------------------------------------------------状态行
---------------------------------------------
响应消息头:
Location:配合302,找该位置请求资源(请求重定向)
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Encoding: gzip 服务器压缩格式,
Content-Length:2291 数据大小
Content-Type: text/html 服务器回送数据的类型
Content-disposition: attachment;filename = "文件名" 表示页面是下载属性
Transfer-Encoding:chunked 告诉浏览器数据是一块一块传送
Set-Cookie: SS=Q0=5Lb_nQ; path = /search 与Cookie相关
ETag: W/"s7777-1242234904000" 与缓存相关,如果服务器的tag和客户机的tag不一样,就重新请求,如果一样,就读缓存(ETag是实时的)
Expires: -1 控制浏览器对数据资源缓存多久,-1或0代表不缓存
Last-Modified: 告诉浏览器上次更新时间
Refresh:3 3秒刷新一次页面告诉浏览器多长时间刷新一次(浏览器会根据这个自动刷新页面,获取新数据),也可以跟url地址,刷新后跳转到url定位的页面
Cache-control: private 或者/no-cache 不要缓存数据
Pragma :no-cache
Connection: close/Keep-Alive
Accept-Ranges:说明Web服务器是否支持Range,支持就返回bytes,不支持就返回Accept-Ranges;none
Content-Range:指定返回的Web资源字节范围,格式是:1000-3000/5000 返回1000到3000字节数据,共5000
---------------------------------------------
空行
---------------------------------------------
实体内容:
<html>
<body>
...