- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运行本书第4章开发的浏览器SelfBrowser,在地址栏中输入“:2258/ njnu.htm”(本章旨在介绍HTTP编程,故没有实现DNS域名解析功能,所以在访问服务器的时候采用直接给出IP的方式)后单击“浏览”按钮或直接按回车键,浏览器显示出先前存放在根目录下的网页,如图9.16所示。 留心一下服务器监控列表中所显示的日志会发现:显示这个网页的过程中创建了好多个Socket,每下载完页面上的一个资源就关闭一个Socket,当继续下载新的资源时,又要用一个新创建的Socket连接,如图9.17所示。 此时浏览器弹出“文件下载”对话框(图9.20)。 单击“打开”按钮,浏览器真的显示出这个文档的内容(如图9.21所示)。 在地址栏输入:2258/ java_object-oriented_programming.pdf,浏览器显示出保存在根目录下的电子书(如图9.22所示)。 作为HTTP协议实现的辅助函数CreateTypeMap()中有这样几句代码: void CHttpProtocol::CreateTypeMap() { // 初始化map m_typeMap[.doc] = application/msword; … m_typeMap[.pdf] = application/pdf; … m_typeMap[.jpeg] = image/jpeg; m_typeMap[.jpg] = image/jpeg; … m_typeMap[.htm] = text/html; m_typeMap[.html] = text/html; … } 如图9.23所示,在根目录下新建一个名为“MyWebPage”的文件夹,将原本保存在根目录下的南京师范大学主页拖放到新建的文件夹里。 在浏览器地址栏里输入:2258/ MyWebPage/njnu.htm并按回车键或单击“浏览”按钮后,同样可以看到网页(如图9.24所示)。 9.1 HTTP原理 9.2 Web服务器的开发 9.3 自制浏览器访问Web服务器的实验 在本章中,将自己动手来开发一个Web服务器,程序运行效果如图9.1所示。 9.1.1 万维网的工作过程 在Internet中工作的主机,当要访问万维网中的某个网页时,大致要经过以下步骤。 (1)用户首先要确定网页文件所在的URL(统一资源定位符),由URL唯一确定用户要访问的文件在Internet上的位置,如设为/ home.html。 (2)浏览器(相当于客户)向DNS(域名服务器)发出请求,要求把域名转化为它所对应的IP地址。 (3)DNS进行查询后,向浏览器发出应答。如域名对应IP地址为。 (4)在查询得到网页所在的服务器IP地址后,就进入了HTTP的工作阶段。浏览器向IP地址为的主机发出与端口80建立一条TCP连接的请求。 (5)连接建立成功后,浏览器发出一条请求传输网页的HTTP命令,格式为GET/ home.html。 (6)当域名为的服务器收到请求后,向浏览器发送home.html文件。 (7)文件发送完成后,由服务器主动关闭TCP连接,至此HTTP的工作过程也结束了。 (8)浏览器显示收到的网页文件home.html。 (9)如home.html文件中包含有图片,则还要与服务器再次建立一个TCP连接以下载图片。 下面看HTTP是如何把网页文件传输到客户端的(如图9.2所示)。 1.客户机HTTP请求 HTTP请求可以由多行组成,但最后一行必须是空行。HTTP/1.1最常用的请求格式如下: 请求方法 URL HTTP版本号 请求头信息 请求数据 一个空行,这是请求的结束行 客户可用的请求方法见表9.1。 方 法 描 述 GET 返回URL所指的文档,一般情况下用于请求下载Web网页。例如,GET http:// / home.html HTTP/1.1 HEAD 请求文档头,它类似于GET请求,只是Web服务器返回指定文档的首部信息。该请求通常被用来测试超文本链接的正确性、可访问性和最近是否进行了修改 POST 它与GET方法相反,请求服务器接收指定的文档,但它不是替换已有的文档,只是将新数据附加到它的后面。一般可用来向新闻组发送一条消息,或发送能由交互用户填写的表格等 PUT 它与GET方法相反,用从客户端传送的数据取代指定文档中的内容,使客户可以向远程Web服务器传送网页等文件 DELETE 请求服务器删除指定的页面 OPTIONS 允许客户端查看服务器的性能 TRACE 用于测试允许客户端查看的消息回收过程 “HTTP版本号”常为HTTP/1.0或HTTP/1.1。“请求头信息”是可选
文档评论(0)