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

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

ID:33532440

大小:135.00 KB

页数:8页

时间:2019-02-26

web server工作原理及其应用编程方法_第1页
web server工作原理及其应用编程方法_第2页
web server工作原理及其应用编程方法_第3页
web server工作原理及其应用编程方法_第4页
web server工作原理及其应用编程方法_第5页
资源描述:

《web server工作原理及其应用编程方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

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

3、认的)192.168.1.54:代表WEB服务器的地址(http://已暗示服务器端端口号为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应答由此

4、可见这三个TCP包是用来并成功地在HTTPClient(临时端口1903)和HTTP-8-Cfgdemo项目分析CreatedbyQianyongServer(固定端口80)之间建立一个TCP链接。3)提交获取index.html文件的请求建立好链接之后,客户端会向服务器端发一个HTTP报文来请求获取index.html文件,用sniffer捕获的结果如下:从该报文的TCP报头可知该HTTP报文大小为364字节,从HTTP报头可以看出该HTTP报文仅仅含有HTTP包头,而没有数据。HTTP报头分为8行,每行以回车-换行符(CRLF-"r")结束。其中第

5、一行称为Request-Line,HTTP协议为它定义了一个具体的语法格式:MethodRequest-URIHTTP/1.1CRLF这里,Method=GET、Request-RUI=/index.html(/和/index.html一样),服务器端处理这样的Request-Line时会解释为客户端请求获取服务器根目录下的index.html文件。第2-7行一起称为一个Header,其中每一行称为一个头域,每一个头域又由域名、冒号和域值三个部分组成,它们是用来告诉服务器一些与客户端相关的信息,让服务器据此来做一些决策。最后一行由回车-换行符组成。接下来,我

6、应该注意到TCP包头中PUSH位置1了,表示客户端要求服务器端尽快把这个包交给应用层,这时,服务器端向客户端发送一个应答,表示服务器端已经这个报文交给了应用层去处理。用sniffer捕获到的前三个包分析结果如下:序号源端地址目的地址包内容备注-8-Cfgdemo项目分析CreatedbyQianyong5192.168.1.54:80192.168.1.55:1903ACK应答4)获取index.html文件接下来服务器端就向客户端传输index.html文件。由于index.html文件的大小为3078字节,而TCP包最大的数据容量也就1460(1460=

7、1500-20-20,HTTP包的最大数据容量比1460还要小,因为还要扣除HTTP包头),因此,要分多个TCP包才能完成此文件的传输。使用sniffer捕获的结果如下(只截取了HTTP包头部分):从这里可以看出,服务器端的数据是分三次传送到客户端的,TCP协议传送的数据字节数为3356(3356=1460+1460+436),HTTP报文数据的字节数为3078(Content-Length)。这里面,为什么TCP协议传送的数据字节数比HTTP协议传送的数据字节数要多278呢?这是由于第一个TCP报文数据里包含了278个字节的HTTP报头,也就是上图标有行号

8、的1-10共十一行数据。这里的HTTP报头称为Ful

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。