http协议简介.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:12 大小:450KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

http协议简介.doc

http协议简介.doc

预览

免费试读已结束,剩余 2 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、TCP/IP协议介绍在介绍HTTP协议之前,先简单说一下TCP/IP协议的相关内容。TCP/IP协议是分层的,从底层至应用层分别为:物理层、链路层、网络层、传输层和应用层,如下图所示:从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有数据的前面加一个数据控制头,数据封装格式如下:其中,对于TCP传输协议,客户端在于服务器建立连接前需要经过TCP三层握手,过程如下:二、HTTP协议2.1简介超文本传输协议(HypertextTransferProtocol,简称HTTP)是应用层协议,自1990年起,HTTP就已经被应用于WWW全球信息服务系统。HTTP是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。HTTP的第一版本HTTP/0.9是一种简单的用于网络间原始数据传输的协议;HTTP/1.0由RFC1945定义,在原HTTP/0.9的基础上,有了进一步的改进,允许消息以类MIME信息格式存在,包括请求/响应范式中的已传输数据和修饰符等方面的信息;HTTP/1.1(RFC2616)的要求更加严格以确保服务的可靠性,增强了在HTTP/1.0没有充分考虑到分层代理服务器、高速缓冲存储器、持久连接需求或虚拟主机等方面的效能;安全增强版的HTTP(即S-HTTP或HTTPS),则是HTTP协议与安全套接口层(SSL)的结合,使HTTP的协议数据在传输过程中更加安全。2.2协议结构HTTP协议格式也比较简单,格式如下:2.3HTTP协议举例下面是一个HTTP请求及响应的例子:2.4请求头格式a)通用头(general-header):Cache-Control:客户端希望服务端如何缓存自己的请求数据,如"Cache-Control:no-cache","Cache-Control:max-age=0";Connection:客户端是否希望与服务端之间保持长连接,如"Connection:close","Connection:keep-alive";Date:只有当请求方法为POST或PUT方法时客户端才可能会有些字段;Pragma:包含了客户端一些特殊请求信息,如"Pragma:no-cache"客户端希望代理或应用服务器不应缓存与该请求相关的结果数据;Via:一般用在代理网关向应用服务器发送的请求头中,表明该来自客户端的请求经过了网关代理,格式为:"Via:请求协议版本网关标识[其它信息]",如:"Via:1.1webcache_250_199.hexun.com:80(squid)"b)请求头(request-header):Accept:表明客户同端可接受的请求回应的媒体类型范围列表。星号“*”用于按范围将类型分组,用“*/*”指示可接受全部类型;用“type/*”指示可接受type类型的所有子类型,如“Accept:image/gif,image/jpeg,*/*”;Accept-Charset:客户端所能识别的字符集编码格式,格式:“Accept-Charset:字符集1[:权重],字符集2[:权重]”,如:“Accept-Charset:iso-8859-5,unicode-1-1;q=0.8”;Accept-Language:客户端所能识别的语言,格式:“Accept-Language:语言1[:权重],语言2[:权重]”,如:”Accept-Language:zh,en;q=0.7”;Host:客户请求的主机域名或主机IP,格式:“Host:域名或IP[:端口号]”,如:“Host:www.hexun.com:80“,请求行中若有HTTP/1.1则必须有该请求头;User-Agent:表明用户所使用的浏览器标识,主要用于统计的目的;Referer:指明该请求是从哪个关联连接而来;Accept-Encoding:客户端所能识别的编码压缩格式,如:“Accept-Encoding:gzip,deflate”;If-Modified-Since:该字段与客户端缓存相关,客户端所访问的URL自该指定日期以来在服务端是否被修改过,如果修改过则服务端返回新的修改后的信息,如果未修改过则服务器返回304表明此请求所指URL未曾修改过,如:“If-Modified-Since:Fri,2Sep200619:37:36GMT”;If-None-Match:该字段与客户端缓存相关,客户端发送URL请求的同时发送该字段及标识,如果服务端的标识与客户端的标识一致,则返回304表明此URL未修改过,如果不一致则服务端返回完整的数据信息,如:“If-None-Match:0f0a893aad8c61:253,