HTTP是hypertext transfer protocol的简写,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式.
深入理解HTTp协议,对管理和维护复杂的WEB站点,开发具有特殊用途的WEB服务器程序具有直接影响.
HTTP 1.0 的会话方式:
① 四个步骤:建立连接→发出请求信息→回送响应信息→关闭连接.
② 浏览器与WEB服务器的连接(TCP连接)过程是短暂的,每次连接只处理一个请求和响应.对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接.
③ 浏览器和WEB服务器直接的所有通讯都是完全独立分开的请求和响应对.
④ 在浏览器和WEB服务器之间可以加入一个或多个代理服务器.
HTTP 1.1的特点:
① 在一个TCP连接上可以传送多个HTTP请求和响应.
② 多个请求和响应的过程可以重叠进行.(管道线)
③ 增加了更多的请求头和响应头(可以用明确的主机名访问WEB站点)
请求消息的结构:
一个请求行,若干消息头,以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容直接要用空行隔开.
GET /WebRoot/java.html HTTP/1.1
Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: localhost
Referer:
User-Agent: mozilla/5.0
Accept-Encoding: gzip, deflate
//空行.....
响应消息的结构:
一个状态行,若干消息头,以及实体内容,其中的一些消息和实体内容都是可选的,消息头和实体内容之间要用空行隔开.
HTTP/1.1 200 OK
Server: Microsoft-IIS/8.0
Date: thu, 12 Jul 2011 03:23:34 GMT
Content-Length: 2291
Content-Type: text/html
Cache-control: private
......
注意点:
① 响应消息的实体内容就是网页文件的内容,也就是在浏览器中使用查看原文件的方式所看到的内容.
② 一个使用GET方式的请求消息中不能包含实体内容,只有使用POST,PUT和DELETE方式的请求消息中才可以包含实体内容.
③ 对于HTTP1.1来说,如果HTTP消息中包含实体内容,且没有采用chunked传输编码方式,那么消息头部分必须包含有实体内容长度的字段,否则,客户和服务程序就无法知道实体内容何时结束.
④ 在HTTP协议中,还可以使用简单的请求消息和响应消息,它们都没有消息头部分.简单的请求消息只能用于GET方式,且请求行中不用指定HTTP版本号.对于简单的请求消息,服务器返回简单的响应消息,简单的响应消息中只返回实体内容.
HTTP消息头:
相当于服务器和浏览器之间的一些暗号指令,使用消息头可以实现HTTP客户机与服务器之间的条件请求和应答.
服务器端:
① 告诉浏览器隔多久刷新一下网页内容.
② 用哪种字符集显示网页文档的内容.
③ 在用户的计算机上创建cookie文件.
......
浏览器端:
① 浏览器将自己的国家语言版本信息传给服务器.
② 通过消息头将当前的访问请求是通过哪个网页的链接引导进来的信息传递给WEB服务器
......
阅读(670) | 评论(0) | 转发(0) |