HTTP协议笔记
2013-11-14 20:51 hduhans 阅读(168) 评论(0) 收藏 举报超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
准备工作:IE抓包工具HttpWatch_Professional
1、Http协议格式及说明
① 发送请求
Accept: *.* --表示客户端可以接受任何数据
Referer: http://localhost/test.html --表示客户端的来源地址
Accept-Language: zh-cn --页面语言
User-Agent: Mozilla/4.0 --客户端浏览器的内核和操作系统
Accept-Encoding: gzip,deflate --表示接收数据压缩格式的类型
Host: localhost:80 --服务器主机及端口
Conntention: Keep Alive --表示连接不立即中断,是一个长连接
小技巧:apache服务器中使用php可以获取客户端发起请求的IP地址($_SERVER['REMOTE_ADDR']),并限制某些ip无法访问
② 响应请求
HTTP/1.1 200 OK --OK表示客户端请求成功
Server: Microsoft-IIS/5.0 --显示服务器的情况
Last-Modified: Sat,11 Sep 2013 20:40:10 GMT --请求资源更新时间
Date: Sat,16 Sep 2013 20:40:10 GMT --显示客户端请求页面的时间
Refersh: 3;url=http://www.baidu.com --页面停留三秒后跳转至新页面
Content-Length: 2291 --响应数据的大小
Content-Type: text/html --响应文档类型
---------------------------------------------------------------------------
//联合禁用缓存 三个消息头共同作用
Cache-control: no-cache --禁用缓存
Expires:-1 --禁用缓存
Pramga: no-cache --禁用缓存
---------------------------------------------------------------------------
注:① 响应状态码及代表含义
1) 302 --服务器返回跳转新页面地址,伴随 Location:新页面地址
2) 404 --找不到页面
3) 304 --客户端发起请求时,请求数据包含If-Modified-Since,表示客户端已有对应数据缓存,服务断接受请求时,会自动完成 Last-Modified 和 If-Modified-Since 的比较,若相等,则返回304 Not Modified,告诉服务器资源版本与缓存一致,可直接使用缓存资源
② php禁用缓存。三个消息头联合使用,是因为各个浏览器禁用的方式可能不一致;
header("Expires:-1"); header("Cache-Control: no-cache"); header("Pramga: no-cache");
2、http协议请求方式
① GET - 请求获取由Request-URI所标识的资源
② POST - 在Request-URI所标识的资源后附加新的数据
③ HEAD - 请求获取由Request-URI所标识的资源的响应消息报头
④ OPTIONS - 请求查询服务器的性能,或查询与资源相关的选项和需求
⑤ PUT - 请求服务器存储一个资源,并用Request-URI作为其标识
⑥ DELETE - 请求服务器删除由Request-URI所标识的资源
⑦ TRACE - 请求服务器回送收到的请求信息,主要用语测试或诊断
注:① post和get请求的区别:
1) 安全性上,post安全性大于get请求。post请求的数据放在消息数据中,而get请求的数据放在url中,容易暴露;
2) 提交的数据大小上,http协议本身并没有限制数据大小,但get请求的数据最大为2k+35,而post请求的数据理论上没有限制;
3) 从人性化考虑,get请求的url带有参数,容易加入收藏夹;
浙公网安备 33010602011771号