首页 > 代码库 > HTTP协议学习笔记

HTTP协议学习笔记

HTTP协议学习总结

一、建立连接方面

HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。

注意:在同一个TCP连接中,新的请求需要等上次请求收到响应后,才能发送。

二、Host域

HTTP1.1在Request消息头里头多了一个Host域, HTTP1.0则没有这个域。

Eg:GET /pub/WWW/TheProject.html HTTP/1.1
     Host: www.w3.org

可能HTTP1.0的时候认为,建立TCP连接的时候已经指定了IP地址,这个IP地址上只有一个host。

三、请求消息格式

请求消息格式如下所示:

请求行

通用信息头|请求头|实体头

CRLF(回车换行)

实体内容

其中“请求行”为:请求行 = 方法 [空格] 请求URI [空格] 版本号 [回车换行]

请求行实例:

Eg1:GET /index.html HTTP/1.1

 

Eg2: POST http://192.168.2.217:8080/index.jsp HTTP/1.1

HTTP请求消息实例:

GET /hello.htm HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
If-Modified-Since: Wed, 17 Oct 2007 02:15:55 GMT
If-None-Match: W/"158-1192587355000"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 192.168.2.162:8080
Connection: Keep-Alive

 

四、请求方法

  HTTP的请求方法包括如下几种:

q      GET

q      POST

q      HEAD

q      PUT

q      DELETE

q      OPTIONS

q      TRACE

q      CONNECT

五、Fiddler的功能简介

Fiddler有记录,找到Web程序运行性能的瓶颈,调试Microsoft Internet Explorer与Web应用程序的交互,还有如查看向Web服务器发送cookies的内容,下载内容的大小等功能。Fiddler位于用户与Web服务器的中间,由它转发请求与响应,因此Fiddler作为一个可检视,可定制的工具,能让我们了解交互过程细节,有利于解决Web程序的交互问题。

Fiddler的功能: 

1)性能测试。如查看页面的大小  

2)调试。在会话选项中,可暂停,编辑HTTP通讯  

3)Fiddler不仅可用于Microsoft Internet Explorer,还可以用于Mozilla Firefox,Opera等其它浏览器。

Fiddler支持断点调试概念,当你在软件的菜单—rules—automatic breakpoints选项选择beforerequest,或者当这些请求或响应属性能够跟目标的标准相匹配,Fiddler就能够暂停Http通讯, 情切允许修改请求和响应。这种功能对于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码路径都可以用来演习。

通过暴露所有的HTTP通讯,Fiddler很容易得向你展示哪些文件经常被用于生成一个页面,  Shift+click 可以在Fiddler左边框的会话列表中多选会话,来计算那些被选会话的“页面总重量”。那些被转换成字节的数量。如果你想让你的客户在第一次访问的时候就留下深刻的印象 ,那么最好的,也是唯一的途径就是返回给客户更少的文件。