欢迎来到天天文库
浏览记录
ID:9269308
大小:36.99 KB
页数:8页
时间:2018-04-25
《http协议基础知识概述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、HTTP协议基础知识概述HTTP(HyperTextTransferProtocol)是超文本传输协议的简称,它是Web应用的核心。HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统,通过交换HTTP报文进行会话。Web页面也叫文档是由对象组成的。对象简单来说就是文件,文件(如HTML文件,JPEG图形文件等)可以通过一个URL地址寻址。多数Web页面包含一个基本HTML文件以及几个引用对象。如果一个页面包含HTML文件和5个JPEG图形文件,那么这个页面就有6个对象,其中的五个图形
2、对象是通过URL地址引用。Web浏览器实现了HTTP的客户机端,Web服务器用于存储Web对象,每个对象由URL寻址。HTTP使用TCP作为运输层协议。HTTP客户机发起一个与服务器的TCP连接,一旦建立连接,浏览器和服务器进程就可以通过套接字接口访问TCP。客户机端的套接字接口是客户机进程与TCP连接之间的门,服务器端的套接字接口则是服务器进程与TCP连接之间的门。客户机从套接字接口发送HTTP请求报文和接收HTTP响应报文。服务器也是从套接字接口接收HTTP请求报文和发送HTTP响应报文。服务器向客户机发送被请求
3、的文件时,并不存储任何关于该客户机的任何信息。假如某个特定的客户机在短短的几秒钟内两次请求同一对象,服务器并不会因为刚刚为该用户提供了该对象就不再做出反应,而是重新发送该对象,就像该服务器已经完全忘记了不久之前做过事一样。所以说HTTP协议时无状态协议(statelessprotocol)。HTTP协议有持久性连接(persistentconnection):同一客户机对服务器的所有请求和服务器对该客户机的所有响应都使用同一TCP连接进行;非持久性连接(non-persistentconnection):客户机和服务
4、器对每个请求/响应对建立一个新的TCP连接,两种连接方式。1、非持久连接从服务器向客户机传送一个Web页面的步骤,假设该页面含有一个基本HTML文件和10个JPEG图形,而且这11个对象位于同一台服务器上。该HTML文件的URL为:。1)HTTP客户机进程在端口号80发起一个到服务器www.somesite.com的TCP连接,该端口号是HTTP的默认端口。客户机和服务器上分别有一个套接字与连接相关联。2)HTTP客户机经它的套接字向服务器发送一个HTTP请求报文。请求报文中包含了路径名someresource/in
5、dex.aspx。3)HTTP服务器经常经它的套接字接收该请求报文,从其存储器中检索出对象index.aspx,在一个HTTP响应报文中封装该对象,并通过其套接字向客户机发送响应报文。4)HTTP服务器进程通知TCP断开该TCP连接。(但是直到TCP确认客户机已经完整地接收到响应报文为止,它才真正中断连接。)5)HTTP客户机接收响应报文,TCP关闭连接。报文封装一个HTML文件,客户机从响应报文中提取出该文件,得到10个JPEG图形的引用。6)对每个引用的JPEG图形对象重复前四步。浏览器和Web服务器之间每建立一
6、个TCP连接,都会涉及到TCP的三次握手过程以及往返时间(Round-TripTime,RTT,一个小分组从客户机到服务器再到客户机所花费的时间)。三次握手过程:客户机向服务器发送一个小TCP报文段,服务器用一个小TCP报文段做出确认和响应,最后,客户机向服务器返回确认,至此完成三次握手。一个RTT等于三次握手中前两个部分所耗费的时间。完成三次握手的前两个部分后,客户机将第三次握手(客户机确认)与一个HTTP请求报文结合起来发送到该TCP连接。如图持久连接:在持久连接的情况下,服务器在发送响应后保持该TCP连接打开。
7、在相同的客户机与服务器之间的后续请求很响应报文可通过相同的连接进行传送。一个完整的Web页面(如一个基本HTML文件加上10个图形文件)可以用单个持久TCP连接进行传送。如果一个连接经过一定时间间隔(一个可配置的超时间隔)仍未被使用,HTTP服务器就关闭该连接。2、HTTP报文格式为了看看HTTP请求报文的格式,我很随意的用VS2010建了个工程,而后用tcpTrace跟踪消息。WebForm1.aspx的内容如下:divTestPage1:asp:ButtonID="test"runat="server"Text=
8、"Test"onclick="test_Click"/asp:ImageID="img"runat="server"ImageUrl="~/Tulips.jpg"//div当请求WebForm1.aspx时的请求头文件如下:GET/WebForm1.aspxHTTP/1.1Accept:application/x-ms-application,
此文档下载收益归作者所有