电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

8页
  • 卖家[上传人]:鲁**
  • 文档编号:455740707
  • 上传时间:2023-04-03
  • 文档格式:DOC
  • 文档大小:132KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 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)网络环境附注:服务器端包括两个文件:index.html和tibug.gif2)建立链接在HTTP Client(WEB浏览器IE)和HTTP Server(WEB服务器)进行数据传递的之前,需要在两者之间建立一个TCP链接,用于在两者之间传输HTTP报文。当我们在IE的地址栏里输入:http:/192.168.1.54index.html并回车时,可以用软件sniffer捕获

      2、H1和H2之间的传输数据。在分析报文数据之前,我们先来分析一下它的含义:http:/:代表超文本传输协议,一般情况下不用输入(默认的)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应答由此可见这三个TCP包是用来并成功地在HTTP Client(临时端口1903)和HTTP Server(固定端口80)之间建立一个TCP链接。3)提交获取index.html文件的请求建立好链接之后,客户端会向服务器端发一个HTTP报文来请求获取index.html文件,用sniffer捕获的结果如下:从该报文的

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

      4、192.168.1.54:80192.168.1.55:1903ACK应答4)获取index.html文件接下来服务器端就向客户端传输index.html文件。由于index.html文件的大小为3078字节,而TCP包最大的数据容量也就1460(1460=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报头,也就是上图标有行号的1-10共十一行数据。这里的HTTP报头称为Full-Response报头,分为11行。其中第一行成为Response-Line,HTTP协议为它定义了一个具体的语法格式:HT

      5、TP/1.1 Status-CodeReason-Phrase CRLF这里,Status-Code=200,Reason-Phrase=”OK”,客户端处理这样的Response-Line时会解释为服务器端正确响应了客户的请求。第2-9行一起称为一个Header,其中每一行称为一个头域,每一个头域又由域名、冒号和域值三个部分组成。它们是用来告诉客户器一些相关的信息,譬如:服务器端响应客户端的数据长度由”Content-Length: 3078”头域表示;接收完数据之后是否关闭该TCP链接由”Connection: close”表示;传送的数据格式由”Content- Type: text/html”表示等。最后一行由回车-换行符组成。至此,index.html文件就传送到客户端,并由客户端的IE浏览器进行解释显示了。5)关闭链接我们再来看看第4)步中3个TCP报文中的最后一个,用sniffer捕获并分析,结果如下(仅分析TCP包头):这里看出Push和FIN位都置上了1,表示服务器端要求客户端尽快把这个包提交给应用层(Push)并断开这个TCP链接(FIN)。客户端作出应响应并配合断

      6、开这个链接。用sniffer捕获到的前三个包分析结果如下:序号源端地址目的地址包内容备注9192.168.1.55:1903192.168.1.54:80ACK应答10192.168.1.55:1903192.168.1.54:80FIN断开11192.168.1.54:80192.168.1.55:1903ACK应答至此,一次完整的TCP链接的建立HTTP请求HTTP响应TCP链接的断开过程就完成了。6)IMG标号的处理当客户端IE浏览器解释并显示index.html文件时,会发现里面有这样一条语句:它表示该index.html文件中插入了一个名为tibug.gif的图形文件,显示宽度位236个象素,同时也告知了该文件位于WEB服务器的根目录下。但是在前面的传输过程中并没有把该文件传输到客户端,所以IE浏览器为了能完整的显示index.html文件,就必须得重新建立TCP链接,通过HTTP协议把该文件传过来。其过程同获取index.html文件的过程基本相同。用sniffer捕获到并分析,其结果如下:序号源端地址目的地址包内容备注12192.168.1.55:1904192.168.

      7、1.54:80SYN同步13192.168.1.54:80192.168.1.55:1904SYN+ACK同步+应答14192.168.1.55:1904192.168.1.54:80ACK应答15192.168.1.55:1904192.168.1.54:80PUSH+HTTPHTTP请求16192.168.1.54:80192.168.1.55:1904ACK应答17192.168.1.54:80192.168.1.55:1904HTTPHTTP响应18192.168.1.54:80192.168.1.55:1904PUSH+HTTPHTTP响应19192.168.1.54:80192.168.1.55:1904FIN+ACK断开+应答20192.168.1.55:1904192.168.1.54:80ACK应答21192.168.1.55:1904192.168.1.54:80FIN断开22192.168.1.54:80192.168.1.55:1904ACK应答至此,index.html就可以完整的显示出来了。7)CGI程序IE浏览器显示出index.html文件后(显示结果如

      8、下图所示),我们可以看到有两个按钮:View Configuration和Change Password,客户端可以通过单击该按钮来向服务器端提交客户输入的信息。下面我们来分析后者-更改用户密码-的实现过程。我们在User Password文本框中输入CONFIG(默认密码),在Enter New Password文本框中输入QIANYONG作为新密码,再在Re-Type New Password文本框中输入QIANYONG进行确认,然后点击Change Password按钮,这样客户端就完成了密码修改工作。下面用sniffer捕获这个过程的交互过程。首先要在客户端和服务器端建立一个TCP链接,用来进行HTTP协议的传输,所以用sniffer捕获的前三个包分析结果如下:序号源端地址目的地址包内容备注23192.168.1.55:1905192.168.1.54:80SYN同步24192.168.1.54:80192.168.1.55:1905SYN+ACK同步+应答25192.168.1.55:1905192.168.1.54:80ACK应答接着用sniffer捕获的包如下(这里只截取

      9、了HTTP报文部分):从这里可以看出,HTTP报文由两部分组成:1-12行表示的HTTP报头,13行表示的的HTTP报文数据(51字节)。报头的第一行是一个Request-Line,如前所述,HTTP协议为它定义了一个具体的语法格式:Method Request-URI HTTP/1.1 CRLF这里,Method = POST、Request-RUI=/cgfpass.cgi,其中POST表示客户端要向服务器端提交长度为Content-Length的数据,/cfgpass.cgi表示提交的数据要交由服务器端根目下的名为cfgpass的CGI程序来处理。因此,服务器端接收到这样的一个Request-Line后会解释为客户端请求服务器调用根目录下的名为cfgpass的CGI程序来处理以HTTP协议传输的报文数据。2-11行称为Header,它们是用来告诉服务器一些相关的信息。12行为一个回车-换行符。接下来的就是51字节的HTTP报文数据:password=CONFIG&passnew1=QIANYONG&passnew2=QIANYONG大家可以看出CONFIG、QIANYONG、QIANYONG是由客户端输入的。那么为什么点击Change Password会产生这

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

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.