WEBServer工作原理及其应用编程方法

上传人:公**** 文档编号:488973039 上传时间:2023-02-10 格式:DOCX 页数:7 大小:54.32KB
返回 下载 相关 举报
WEBServer工作原理及其应用编程方法_第1页
第1页 / 共7页
WEBServer工作原理及其应用编程方法_第2页
第2页 / 共7页
WEBServer工作原理及其应用编程方法_第3页
第3页 / 共7页
WEBServer工作原理及其应用编程方法_第4页
第4页 / 共7页
WEBServer工作原理及其应用编程方法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《WEBServer工作原理及其应用编程方法》由会员分享,可在线阅读,更多相关《WEBServer工作原理及其应用编程方法(7页珍藏版)》请在金锄头文库上搜索。

1、Cfgdemo项目分析WEB Server工作原理及其应用编程方法说到WEB Server ,就不能不提到 HTTP协议HTTP是Hyper Text Transfer Protocol的缩写,中文译称超文本传输协议。它和 FTP协 议一样,都是基于 TCP的应用层协议,但它们服务器端使用的端口号不一样:通常情况下,FTP使用的端口号是 20 (数据链接)、21 (控制链接),而HTTP使用的端口号是 80。HTTP 协议是一个采用的请求/响应模型的协议。HTTP协议最典型的应用是在 WEB服务器和WEB 浏览器之间传递数据。下面举个例子来说明 WEB浏览器和 WEB服务器之间的交互过程:1)

2、网络环境附注:服务器端包括两个文件:index.html和tibug.gif2)建立链接在HTTP Client (WEB浏览器IE)和HTTP Server (WEB服务器)进行数据传递的之 前,需要在两者之间建立一个TCP链接,用于在两者之间传输HTTP报文。当我们在IE的地址栏里输入:http:/192.168.1.54index.html并回车时,可以用软件sniffer捕获H1和H2之间的传输数据。在分析报文数据之前,我们先来分析一下它的含义:http:/:代表超文本传输协议,一般情况下不用输入(默认的)192.168.1.54: 代表WEB服务器的地址(http:已暗示服务器端端口

3、号为80)index.html :代表根目录下的网页文件因此这句话的含义就是获取服务器上192.168.1.54:80根目录下的index.html文件。用sniffer捕获到的前三个包分析结果如下:序号源端地址目的地址包内容备注1192.168.1.55:1903192.168.1.54:80SYN同步2192.168.1.54:80192.168.1.55:1903SYN+ACK同步+应答3192.168.1.55:1903192.168.1.54:80ACK应答由此可见这三个 TCP包是用来并成功地在 HTTP Client (临时端口 1903)和HTTP Server(固定端口 80

4、)之间建立一个TCP链接。3)提交获取index.html文件的请求建立好链接之后,客户端会向服务器端发一个HTTP报文来请求获取index.html文件,用7 T IP D=l?2 168 1,54 S1S2,168.1.55 LEK=384 ID=S713Ssniffer捕获的结果如下:第 TCP:TCP headerjg TCP: TCP: Source port- 1303K TCP: Destination port= 8C (UWU/WU-HTTP/HTTP) TCP: Sequence number- 6043E8S0STCP: Fest eKpected Seq number=

5、 6043E3870Q TCP: Acknowledgment number = 12 332 635 39口 TCP: Data of fset- 20 bytes TCFReserved Bi ts:Reservedfor Future Use爵 TCP:F Lags=IE5 TCP:l-l= (No urgent pointer)Q -=Acknow1edgment幽 TCP :=Push TCP:.L 0=(Nc reset) TCP:口=(No SYN)口=(No FIN) TCP:Uindo卯-655350IF .Checksum=90C4 (correct)居 TCP:Urgen

6、t pointer=0a tcp :No TCP options国 TCP:364 Bytes ofdataR TCP:F?毡 HTTP:Hypertext Transfer Protocol* HTTP:GET / HTTP/1.1Accept: imagegif,Q HTTP: 3: Accept-Language: zh-cnQ HTTP: 4: Accept-Encoding: gzip, def lateA HTTP: 5 : User-Agent: Mozilla4.0B HTTP: 6: Host: 192 168.1.54Q HTTP: 7: Connection: Keep-

7、Alive . HTTP : 8 :B HTTP:从该报文的TCP报头可知该HTTP报文大小为364字节,从HTTP报头可以看出该HTTP 报文仅仅含有HTTP包头,而没有数据。HTTP报头分为8行,每行以回车-换行符(CRLF rn)结束。其中第一行称为 Request-Line , HTTP协议为它定义了一个具体的语法格式:Method Request-URI HTTP/1.1 CRLF这里,Method=GET、Request-RUI=/index.html (/和/index.html一样),服务器端处理这 样的Request-Line时会解释为客户端请求获取服务器根目录下的index

8、.html文件。第2-7行一起称为一个Header,其中每一行称为一个头域,每一个头域又由域名、冒号和域值三个部分组成,它们是用来告诉服务器一些与客户端相关的信息,让服务器据此来做一些决策。最后一行由回车-换行符组成。接下来,我应该注意到 TCP包头中PUSH位置1 了,表示客户端要求服务器端尽快把 这个包交给应用层, 这时,服务器端向客户端发送一个应答, 表示服务器端已经这个报文交 给了应用层去处理。用 sniffer捕获到的前三个包分析结果如下:序号源端地址目的地址包内容备注5192.168.1.54:80192.168.1.55:1903ACK应答4)获取index.html文件接下来服

9、务器端就向客户端传输index.html文件。由于index.html文件的大小为3078字节,而TCP包最大的数据容量也就 1460 (1460=1500-20-20, HTTP包的最大数据容量比 1460 还要小,因为还要扣除 HTTP包头),因此,要分多个 TCP包才能完成此文件的传输。使用 sniffer捕获的结果如下(只截取了 HTTP包头部分):S HTTP: Vector Off set Length Frane HTTP:F AHTTP:00x003614606- HTTP:10x003614607BHTTP:2CxO036436SkA HTTP :HTTP: 3356 byt

10、es of re-assenbled data.B ETTP:- HTTP Hyper tex t- Transf er Protocol- -5 HTTP:B ETTP:1: HTTP/1 1 200 OK HTTP 2: Date: Ved, 20 Oct 2004 03:04: 41 GKT HTTP:3: Server: Apache/2.0.40 (Red Hat Linux)国 HTTP: 4: Last-Modified: Tue, 19 Oct 2004 03 : 42:05 GMT:B HTTP: S: ETag: i,15ea3f-ct)6-de2 5dl4O-HTTP:

11、6: Accept-Ranges: bytes ri HTTP: 7: Content-Length: 3078 Q HTTP: 8: Connection: close M HTTP q:Con tent-Type : test/htiwl; char se t = ISO-8BS9-l Q HTTP:10:从这里可以看出,服务器端的数据是分三次传送到客户端的,TCP协议传送的数据字节数为 3356 (3356=1460+1460+436) , HTTP报文数据的字节数为 3078 (Content-Length )。这 里面,为什么TCP协议传送的数据字节数比 HTTP协议传送的数据字节数

12、要多 278呢?这是由 于第一个TCP报文数据里包含了 278个字节的HTTP报头,也就是上图标有行号的1-10共十一行数据。这里的HTTP报头称为Full-Response报头,分为11行。其中第一行成为Response-Line, HTTP协议为它定义了一个具体的语法格式:HTTP/1.1 Status-Code Reason-Phrase CRLF这里,Status-Code=200, Reason-Phrase=OK,客户端处理这样的 Response-Line时会解 释为服务器端正确响应了客户的请求。第2-9行一起称为一个Header,其中每一行称为一个头域,每一个头域又由域名、冒号

13、和域值三个部分组成。它们是用来告诉客户器一些相关的 信息,譬如:服务器端响应客户端的数据长度由Content-Length: 3078 ”头域表示;接收完数据之后是否关闭该 TCP链接由Connection: close”表示;传送的数据格式由“Content- Type:text/html”表示等。最后一行由回车 -换行符组成。至此,index.html文件就传送到客户端,并由客户端的IE浏览器进行解释显示了。5)关闭链接我们再来看看第4)步中3个TCP报文中的最后一个,用sniffer捕获并分析,结果如下(仅 分析TCP包头):TCP header 典 典 11图aBaB3smsQP TC

14、Source portDext inaticn portSequence number=80 (WVV/UUW-HTTP/HTTF)=1903-1233266519Next expected Seq number_ 123326b956=604358670 =20 bytes for Future Use =19Acknow1edgmen t number Data offsetReserved Bits: Reserved F Lags0 .WindowChecksumUrgent pointer No TCP options 436 Bytes of data(No urgent pointerAcknouledgment Push(No reset)(No SYN)FIN64322527 (correct)0这里看出Push和FIN位都置上了 1,表示服务器端要求客户端尽快把这个包提交给应用层(Push)并断开这个TCP链接(FIN )。客户端作出应响应并配合断开这个链接。用sniffer捕获到的前三个包分析结果如下:序号源端地址目的地址包内容备注9192.168.1.55:1903192.168.1.54:80ACK应答10192.168.1.55:1903192.168.1.54:80FIN11192.168.1.54:80192.16

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号