网络编程HTTP实验报告.doc

网络编程HTTP实验报告.doc

ID:56957544

大小:1.34 MB

页数:4页

时间:2020-07-28

网络编程HTTP实验报告.doc_第1页
网络编程HTTP实验报告.doc_第2页
网络编程HTTP实验报告.doc_第3页
网络编程HTTP实验报告.doc_第4页
资源描述:

《网络编程HTTP实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、实验内容设计一个简易的HTTP服务端的程序,监听80端口。支持多客户端连接,能满足客户的HTTP方法,包括GET、POST、Head请求。同时再设计一个客户端,向该服务器发送请求,并响应结果。二、实验设计1)服务端:首先启动一个TcpListener监听80端口的TCP连接,把接受到的每个TcpClient丢到线程池中去处理。接着线程用StreamReader读取第一行,获得HTTP连接的版本,获取的资源路径以及HTTP方法,根据不同的HTTP方法创建不同的实例进行处理。如果是GET或者HEAD,读到空行表示读取结束。如果是

2、POST,读到空行后,还要读取多个字符作为POSTDATA。最后,根据不同的HTTP方法做出不同的响应即可。比如,GET的话返回一张html主页(带图片、图标和css文档),POST的话将post的信息生成一张动态网页送回去(注意用HttpUtil类的URLDecode方法),HEAD的话直接返回响应头信息即可。服务端的UML图如下:2)客户端:用一个TcpClient主动去Connect对应的服务器(也可以是其他外网的服务器,比如百度),在TextBox中显示HTTP响应头信息以及网页源代码等,在WebBrowser中显示对应

3、网页。客户端这边可以对服务器发送HEAD信息,方法是在TcpClientConnect成功后,用StreamWriter发送一行HEAD/HTTP/1.1,接着可以发送一些头信息,最后再发送一个空行,然后就可以用StreamReader从服务器端获取头信息(以空行结束)。POST请求则是通过浏览器发送的,结果也由浏览器接收。三、实验结果1.浏览器访问主页(发送GET请求)1.浏览器发送POST请求1.客户端访问主页(发送GET请求)2.客户端访问百度(发送GET请求)1.客户端发送HEAD请求一、实验总结通过本次实验,本人从中学

4、到了很多东西。首先,本次实验是我第一次接触HTTP协议,由于对协议不熟悉,所以遇到了很多问题,比如:HTTP的请求和响应的headers信息都是可选的(有默认值),但是headers后面的空行是必须的,它作为一种结束的标志。还有,使用POST方法时,空行后面的POSTDATA必须以字符的形式一个一个读取,以字节的形式或者以行的形式读取都会失败。其次,由于对网络编程尚不够熟悉,犯了一些小错误,结果DEBUG了好久。比如,用StreamWriter往网络流写数据时,必须用Flush()方法真正把数据送过去,而BinaryWriter

5、则不必调用Flush方法。还有,没有用异步,导致界面卡顿,后来更正后情况改善。但是WebBrowser的Nevigate方法依然无法用异步的方式执行。再之,我还发现了一些浏览器之间的差别,比如IE不支持text-shadow的CSS属性,而Chrome和FireFox均支持;IE对于每个响应的资源都必须加上Content-Type头信息,否则无法正常识别,而Chrome和FireFox都可以智能识别。最后,我还发现,当浏览器收到服务器响应的html时,可能会根据里面的每个css、图标、图片资源分别建立线程向服务器发送请求,但如果

6、这些资源在本地缓存之中,就不会再向服务器发送请求了,这不仅降低了服务器的负载,提高了浏览速度,还避免了网络的拥塞。

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

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

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