ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:23.28KB ,
资源ID:11473719      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11473719.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(HTTP协议分析.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

HTTP协议分析.docx

1、HTTP协议分析HTTP协议分析1、 HTTP介绍HTTP是超文本传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。2、 HTTP应用目前网络上利用HTTP协议的应用已经非常广泛,如下表所示:大类小类电子邮件WEBMAIL网站门户、公司、个人WWW网站HTTP-search流媒体网站论坛、聊天论坛 聊天室突网工具Web加密社交网站F

2、acebook、Twitter等订票网站旅游网站购物代理服务器HTTP代理软件更新HTTP方式更新软件3、 HTTP协议标准HTTP中文名称为超文本传输协议(HyperText Transfer Protocol),是一个应用层协议,目前有两个版本,分别为HTTP1.0(RFC1945,1996年5月份发布)和HTTP1.1(RFC2616,1999年6月份发布),现在几乎所有的应用(包括客户端和服务器)都基于HTTP1.1。3.1 HTTP1.1和HTTP1.0的区别它们之间的区别主要有如下几点:(一) 持久连接HTTP1.1支持持久连接,且默认是持久连接。HTTP1.0不支持持久连接,每次

3、访问完后就关闭该连接。(二) HOST域HTTP1.1支持HOST域,这样允许虚拟主机的存在。HTTP1.0不支持HOST域。(三) 日期时间戳(接收方向)无论是HTTP1.0还是HTTP1.1,都要能解析下面三种date/time stamp:Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036Sun Nov 6 08:49:37 1994 ; ANSI Cs asctime() format(发送方

4、向)HTTP1.0要求不能生成第三种asctime格式的date/time stamp;HTTP1.1则要求只生成RFC 1123(第一种)格式的date/time stamp。(四) 传送编码HTTP1.1支持chunked transfer,HTTP1.0不支持。(五) Range 和 Content-RangeHTTP1.1支持传送内容的一部分。比方说,当客户端已经有内容的一部分,为了节省带宽,可以只向服务器请求一部分。(六) Status CodeHTTP1.1增加了许多Response Status-Code,比如100(Continue)。(七) Request MethodHTT

5、P1.1增加了OPTIONS、PUT、DELETE、TRACE、CONNECT这些Request方法。(八) Content NegotiationHTTP1.1增加了Content Negotiation,分为Server-driven Negotiation,Agent-driven Negotiation和Transparent Negotiation三种。(九) CacheHTTP1.1详细展开地描述了Cache机制。3.2 HTTP1.1HTTP是一个客户端和服务器端请求和应答的标准。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务

6、器上指定端口(默认端口为80)的HTTP请求,我们称这个客户端叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像,我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定其下层协议提供可靠的传输,任何能够提供这种保证的协议都可以被其使用。HTTP消息包括两种:request和resp

7、onse,消息格式为:开始行+消息头+消息正文。消息头包括general-header、request-header、response-header和entity-header四种,消息头格式为:域名+空格+:+空格+域值 ,一个消息可以包含多个消息头,每个消息头都以结束。3.2.1 request消息Request消息的开始行(请求行)格式为:请求方法+空格+请求的URI+空格+HTTP版本号,一个消息只有一个请求行。请求方法有如下几种:请求方法解释OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求GET请求获取Request-URI 所标识的资源HEAD请求获取由Reque

8、st-URI 所标识的资源的响应消息报头POST在Request-URI 所标识的资源后附加新的数据PUT请求服务器存储一个资源,并用Request-URI 作为其标识DELETE请求服务器删除Request-URI 所标识的资源TRACE请求服务器回送收到的请求信息,主要用于测试或诊断CONNECT通过代理服务器连接目的服务器extension-method用户扩展的方法请求的URI分为绝对URI、相对URI和认证信息,其中认证信息仅当方法为CONNECT时有效,绝对URI也主要用于代理时。例如:GET http:/www.w3.org/pub/WWW/TheProject.html HTT

9、P/1.1(绝对URI)GET /pub/WWW/TheProject.html HTTP/1.1(相对URI)消息头包括general-header、request-heade和entity-header。消息正文可有可无。请求消息例子:GET /portal-core/layouts/generic/img/technical_support_2.jpg HTTP/1.1Accept: */*Referer: Accept-Language: zh-CNUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;

10、 Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; staticlogin:product=cboxf2010&act=login&info=ZmlsZW5hbWU9UG93ZXJXb3JkMjAxME94Zl9VbHRpbWF0ZS5leGUmbWFjPTNFMEVENjUyMEJBMzQzNjlBQkQwRDkyNDI5MTI3MkVFJnBhc3Nwb3J0PSZ2ZXJzaW9uPTIwMTAuNi4zLjYuM

11、iZjcmFzaHR5cGU9MQ=&verify=38e5900f1776a308ebc214205c5bb1a1)Accept-Encoding: gzip, deflateHost: Connection: Keep-AliveCookie: JSESSIONID=058202D9E4BA7B9F51CCA031B87EBB493.2.2 response消息Response消息的开始行(状态行)格式为:HTTP版本号+空格+响应状态代码+空格+响应状态文字描述。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息-表示请求已接收,继续处理2xx:成功-

12、表示请求已被成功接收、理解、接受3xx:重定向-要完成请求必须进行更进一步的操作4xx:客户端错误-请求有语法错误或请求无法实现5xx:服务器端错误-服务器未能实现合法的请求具体状态代码和描述如下:100 : Continue 101 : Switching Protocols 200 : OK 201 : Created 202 : Accepted 203 : Non-Authoritative Information 204 : No Content 205 : Reset Content 206 : Partial Content 300 : Multiple Choices 301

13、: Moved Permanently 302 : Found 303 : See Other 304 : Not Modified 305 : Use Proxy 307 : Temporary Redirect 400 : Bad Request 401 : Unauthorized 402 : Payment Required 403 : Forbidden 404 : Not Found 405 : Method Not Allowed 406 : Not Acceptable 407 : Proxy Authentication Required 408 : Request Time

14、-out 409 : Conflict 410 : Gone 411 : Length Required 412 : Precondition Failed 413 : Request Entity Too Large 414 : Request-URI Too Large 415 : Unsupported Media Type 416 : Requested range not satisfiable 417 : Expectation Failed 500 : Internal Server Error 501 : Not Implemented 502 : Bad Gateway 50

15、3 : Service Unavailable 504 : Gateway Time-out 505 : HTTP Version not supported 例如:HTTP/1.1 200 OK HTTP/1.1 301 Moved Permanently HTTP/1.1 304 Not Modified消息头包括general-header、response-heade和entity-header。消息正文可有可无。响应消息例子:HTTP/1.1 200 OKServer: Apache-Coyote/1.1X-Powered-By: Servlet 2.4; JBoss-4.2.3.G

16、A (build: SVNTag=JBoss_4_2_3_GA date=200807181417)/JBossWeb-2.0ETag: W/30178-1272473282000Last-Modified: Wed, 28 Apr 2010 16:48:02 GMTContent-Type: image/jpegContent-Length: 30178Date: Tue, 09 Aug 2011 13:36:50 GMT.JFIF.H.H.Exif.MM.*.b.j.(.1.r.2.i.H.H.Adobe Photoshop 7.0.2010:04:14 14:00:37.(.&.H.H.

17、JFIF.H.H.Adobe_CM.Adobe.d.3.2.3 URLHTTP URL是一种特殊的URI,包含了用于查找某个资源的足够的信息,其格式如下:http: / host : port abs_path ? query http 表示要通过HTTP 协议来定位网络资源;host 表示合法的Internet 主机域名或者IP 地址;port 指定一个端口号,为空则使用缺省端口80;abs_path 指定请求资源的URI,如果URL 中没有给出abs_path,那么当它作为请求URI 时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。例如:1、输入:浏览器自动转换成:2、htt

18、p:/10.10.201.100:8888/index.jsp3.2.4 general-headergeneral-header(通用报头)是指在request消息和response消息中都会用到的消息头,包括如下域:域名说明Cache-Control用于指定缓存指令Connection发送指定连接的选项Date表示消息产生的日期和时间Pragma用来包含实现特定的指令Trailer指明了在以块(chunked)传输编码消息里的尾部(trailer)里用到的头域Transfer-Encoding指示了消息正文(message body)的编码转换,这是为了实现在接收端和发送端之间的安全数据传

19、输Upgrade允许客户端指定它支持什么样的附加传输协议Via必须被网关和代理使用,用来指明用户代理和服务器之间关于请求的中间协议和接收者,以及源服务器和客户端之间关于响应的中间协议和接收者Warning用于携带额外关于消息的状态或变换的信息而这些信息是不能在消息里反应出来的3.2.5 Request-headerrequest-header(请求报头)是只在request消息才会用到的消息头,包括如下域:域名说明Accept用于指定服务器返回给客户端可接受的响应媒体类型Accept-Charset用来指出请求客户端能接受什么样的字符集响应Accept-Encoding限定服务器返回给客户端可

20、以接受的内容编码Accept-Language限定服务器返回给客户端喜爱的自然语言Authorization发送授权信息给服务器希望得到授权Expect用于指明客户端需要的特定服务器行为From允许客户端指定它支持什么样的附加传输协议Host说明了正在请求资源的网络主机和端口号If-Match如果一个客户端已经从一个资源里获得一个或多个实体(entity),那么他可以通过在If-Match头域里包含相应的实体标签(entity tag)来验证这些实体的一个或多个是否就是服务器当前实体If-Modified-Since如果请求变量(variant)自从此头域里指定的时间之后没有改变,那么服务器不

21、应该返回实体If-None-Match一个客户端如果有一个或多个从某资源获得的实体,那么他能验证在这些实体中有不存在于服务器当前实体中的实体,这通过在If-None-Match头域里包含这些实体相关的实体标签(entity tag)来达到此目的If-Range如果实体没有改变,发送我想要的部分;如果实体改变了,那就把整个新的实体发过来If-Unmodified-Since如果请求资源自从此头域指定时间开始之后没有改变,那么服务器应该执行此请求就像If-Unmodified-Since头域不存在一样。如果请求变量在此头域指定时间后以后已经改变,那么服务器不能执行此请求Max-Forwards提供

22、一种机制,那就是利用TRACE和OPTIONS方法去限制代理或网关的数量,这些代理或网关能传递请求到下一个入流(inbound)服务器Proxy-Authorization允许客户端让一个需要授权的代理能给自己(或客户端的用户)授权Range使用条件或无条件GET方法可以请求一个或多个实体的字节范围,而不是整个实体Referer允许服务器生成关于到资源的反向连接列表TE指明客户端可以接受哪些传输编码(transfer-coding)的响应,和是否愿意接收块(chunked)传输编码响应的尾部(trailer)User-Agent包含关于发起请求的用户代理的信息3.2.6 Response-he

23、aderresponse-header(响应报头)是只在response消息才会用到的消息头,包括如下域:域名说明Accept-Ranges允许服务器指明它对客户的范围请求(range request)的接受程度Age表示发送者(一般是缓存)对响应产生(或重验证)时刻后经过时间的估计ETag提供了请求对应变量(variant)的当前实体标签Location被用于为了完成请求或识别一个新资源,使接收者能重定向于Location指示的URI而不是请求URIProxy-Authenticate代理授权Retry-After能被用于一个503(服务不可得)响应,服务器用它来向请求端指明服务不可得的时长

24、。此头域可能被用于3xx(重定向)响应,服务器用它来(如web浏览器)指明用户代理再次提交已重定向请求之前的最小等待时间Server包含了源服务器用于处理请求的软件信息Vary指定了一些请求头域,这些请求头域用来决定当缓存中存在一个响应是保鲜时缓存是否被允许去利用此响应去回复后续请求而不需要重验证(revalidation)WWW-Authenticate必须包含在401(没有被授权)响应消息中3.2.7 Entity-headerEntity-header(实体报头)是用来描述实体的消息头,在request消息和response消息中都有可能包含实体(消息正文),实体报头包括如下域:域名说明

25、Allow列出了请求URI(Request-URI)指定资源所支持的几种方法。必须出现在405(方法不被允许)响应中Content-Encoding表明对实体主体采用了何种的内容编码,从而可以知道采用何种解码机制以获取Content-Type头域中指出的媒体类型Content-Language描述了实体面向用户的自然语言Content-Length按十进制或八位字节数指明了发给给接收者的实体主体的大小Content-Location可用来为消息里的实体提供对应资源的位置,当此实体的访问位置和请求URI不是同一位置时Content-MD5含有的是实体主体的MD5摘要,这是为了给一个end-to-

26、end消息的实体主体的提供完整性检测Content-Range用于指明部分实体主体在完整实体主体里那一部分被采用Content-Type指明发给接收者的实体主体的媒体类型Expires给出了在何日何时之后响应即被视为陈旧的Last-Modified指明了变量(variant)被源服务器所确信的最后修改的日期和时间extension-header用户可扩充的域4、 WEB服务器和客户端目前市场上占主流的WEB服务器有Apache、IIS、Nginx、AOLserver、Lighttpd、LiteSpeed、Zeus,其中后两款是商业服务器,需要收费,其余的都是免费的并且大部分是开源的。除了这些主

27、流的服务器之外还有一些轻型化的服务器,如Tornado Web Server、Cherokee、thttpd、Appweb、Eurasia3、Mongrel、Shttpd、TclHttpd等。HTTP客户端主要是指浏览器,有IE、Firefox、Opera、Lynx、Konqueror、Safari、傲游浏览器、Chrome、E影浏览器、UC手机浏览器、HotJAVA等。国内的如腾讯TT、搜狗浏览器、世界之窗、360浏览器等都是基于IE的内核实现的。5、 相关技术介绍与HTTP相关的技术比较多,主要有HTML、XML、JavaScript、CSS、DOM、cookie、session、PHP、

28、JSP、CGI、perl等,这些技术大都是为了在服务器端实现静态和动态网页以及在客户端实现页面展示所采用的一些编程技术,具体技术标准可以参考各自的标准文档。HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口(HTTPS的默认端口是443)及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。6、 HTTP数据还原HTTP数据还原是指将网络上获取的数据包按照一定的顺序重新组装成request消息或response消息。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1