- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
用JAVA 实现WEB 服务器
训练目的
处理一个http请求
接收并解析http请求
从服务器文件系统中获得被请求的文件
创建一个包括被请求的文件的http响应信息
直接发送该信息到客户端
通过本实验,能够进一步理解HTTP协议的技术细节以及WEB服务器的实现原理。
HTTP协议的作用原理
基于HTTP协议的客户/服务器模式的信息交换分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
连接:连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
请求:Web浏览器通过该socket向Web服务器提交请求。
响应:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。
关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。
Java实现Web服务器功能的程序设计
根据上述HTTP协议的作用原理,实现GET请求的web服务器程序方法如下:
创建ServerSocket类对象,监听端口8080
等待、接受客户机连接到端口8080,得到与客户机连接的socket
创建与socket字相关联的输入流instream和输出流outstream
从与socket关联的输入流instream中读取一行客户机提交的请求信息,请求信息的格式为:GET路径/文件名HTTP/1.0
从请求信息中获取请求类型。如果请求类型是GET,则从请求信息中获取所访问的
HTML文件名。没有HTML文件名时,则以index.html作为文件名
如果HTML文件存在,则打开HTML文件,把HTTP头信息和HTML文件内容通过socket
传回给Web浏览器,然后关闭文件。否则发送错误信息给Web浏览器
关闭与相应Web浏览器连接的socket字
测试结果与分析
编写两个html文件index.html和next.html,其内容如下:
index.html文件:
html
head
TITLEJavaWeb服务器/TITLE
h1Windows环境下用java实现Web服务器实验/h1
/head
body
h2这是第fontcolor=red一/font个页面/h2
ahref=http://localhost:8080/f:/web/next.html跳转到第二个页面/a
/body
/html
next.html文件:
html
head
TITLEJavaWeb服务器/TITLE
h1Windows环境下用java实现Web服务器实验/h1
/head
body
h2这是第fontcolor=red二/font个页面/h2
ahref=http://localhost:8080/f:/web/index.html跳转到第一个页面/a
/body
/html
将这两个html文件放在主机上的目录F:\web中。
在eclipse中运行上面的WebServer.java文件,服务器开始运行,监听端口8080
打开浏览器,在地址栏中输入字符http://localhost:8080/f:/web/index.html然后回车,可以在浏览器中看到所制作的网页,并且程序的输出可以体现出HTTP协议的运作的四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。建立连接之后,服务器获取客户机提交的请求信息,并从请求信息中获取所访问的HTML文件名,把HTTP头信息和HTML文件内容通过socket传回给Web浏览器,最后关闭连接。
点击页面中的“跳转到第二个页面”的链接,在浏览器中可以看到制作的另一张网页。此时又重新建立了一个连接,进行信息的发送与响应。
输入错误的网址时,无法打开页面
实验总结
通过本次实验,加深了我对基于HTTP协议的客户/服务器模式的信息交换分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接以及WEB服务器的实现原理的理解。本次实验中遇到的主要问题为向服务器发送的请求信息中的文件路径出错,导致网页打不开,由于访问的端口为8080端口,所以在浏览器地址栏里面输入的应该是http://localhost:8080/+文件路径,并且在
文档评论(0)