HTTP详解
定义:Http是计算机通过网络进行通讯的协议,http客户(浏览器)可以向http服务器(服务器)请求信息和服务,当前版本是1.1
特点:1.无状态连接,意味着浏览器发出请求,服务器返回数据后,连接立即关闭
2.请求(request)/应答(response)模型
3.使用内容类型,即返回的数据都有对应的类型,为MIME中的一种,包括html文件,图片等
步骤:
1.建立TCP连接
首先浏览器与服务器建立连接,通过TCP完成(注:TCP与IP构成Internet,这就是著名的TCP/IP协议,Http比TCP更高层,根据规则,低层连接建立后才能建立高层连接)
一般TCP的端口号是80;通过三次握手形成会话
2.浏览器发送请求命令
eg:GET/sample/hello.jsp HTTP/1.1
请求类型 url地址 协议版本
3.浏览器发送请求头信息
发送完请求命令后,还要发送一些别的信息,最后发送空白行,表示结束
请求头信息包括浏览器支持语言,浏览器支持编码,支持的MIME类型等。。。详情:http://jingyan.baidu.com/article/375c8e19770f0e25f2a22900.html
4.服务器应答
接收到来自浏览器的请求后,服务器应答
eg: HTTP/1.1 200 OK
应答的第一部分是协议的版本号和应答状态码
应答码大全:http://www.cnblogs.com/lxinxuan/archive/2009/10/22/1588053.html
5.服务器发送应答头信息
服务器发送自己的信息,同样,以空白行结束
6.服务器发送数据
服务器会按照应答头信息的格式发送数据
7.关闭TCP
----------------------------------------------------------------------------------------------------------------------------------
详细解析:
HTTP请求格式(第2,第3步)
下面是一个HTTP请求(发送数据块)的例子:
GET/sample.jspHTTP/1.1 对应第2步:请求类型 url地址 http协议类型
Accept:image/gif.image/jpeg,*/* 对应第3步:请求头信息
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
以空白行结束
username=jinqiao&password=1234 请求正文
HTTP应答(第):
应答实例:
<head>
</html>
request代码块常用属性详解:
Accept 客户端可以接受的内容类型 text/html, application/xml
Accept-charset 浏览器可接受的字符编码集 iso-8859-5
Accept-language 浏览器可接受的语言 zh-cn
Accept-encoding 浏览器可接受的的服务端发回的 gzip,deflate
内容压缩类型
Connection 是否需要持久连接 Keep-Alive
Content-Type 当前请求类型 application/x-www-form-urlencoded
Content-Length 请求长度 348
Host 指定请求对象的域名和端口号 www.baidu.con:80
User-Agent 用户信息(客户端系统,版本等) Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Date 请求发送的时间 Tue, 15 Nov 2010 08:12:31 GMT
Authorization HTTP请求的授权信息 Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cookie 请求发送时,会将该域名下所有 Version=1; Skin=new;
cookie发送给web服务器
Cache-Control 指定请求和响应遵循的缓存机制 no-cache