Web服务器和客户端

来源:互联网 发布:淘宝怎么修改好评评价 编辑:程序博客网 时间:2024/06/01 10:22

实验目的

1) 掌握Java Socket编程应用;

2) 阅读HTTP协议相关规范;

3) 基于Java Socket构建简单的HTTP的客户端和服务器;

4) 构建支持并发的HTTP服务器。

资源在底部下载

实验内容

1) 阅读RFC1945RFC2068文档

了解HTTP/1.0HTTP/1.1相关规范和标准,对比HTTP/1.0HTTP/1.1区别。

2) 完善HTTP客户端代码。

代码Client.javaHTTPClient.java实现了基于命令行的HTTP客户端的GET请求的功能。将服务器地址(域名IP地址)设置为启动参数,如www.nwpu.edu.cn启动客户端后,将建立到服务器80端口TCP连接,用户通过控制台输入GET命令实现服务器资源的请求

请完善HTTPClient中的processPutRequest方法使其支持PUT命令。为了简化操作,可直接将客户端运行环境的某文件(face.jpgPUT到服务器指定的路径,如:PUT /face.jpg HTTP/1.0

 

提示PUT请求时Header必须包含“Content-Length”

 

3) 构建单线程的HTTP服务器

编写HTTP服务器,创建一个端口号为80的套接字,并等待传入的请求。服务器只需成功地响应使用GETPUT方法的请求,但对其他所有请求(有效的或无效的)的都应返回RFC指定的响应。在任何情况下确保服务器不会崩溃或挂起。

服务器的根目录,即http://<your-computer>.<your-domain>/应指向在命令行中传递给程序的目录。例如,根目录设置为服务器端c:\www目录,则当客户端请求GET /test/index.html,服务器应向客户端发送文件C:\www\test\index.html来响应请求,如果此文件不存在,则返回404响应。

在成功的响应中,服务器应该指定至少两种MIME类型。服务器应该从文件的扩展名中推导出一个文件的MIME类型,例如,文件名以.htm.html结尾的文件假定为text / html类型。服务器应至少识别HTMLJPEG文件,即文件扩展名分别为.htm.jpg的文件。服务器必须能够将.jpg图像嵌入到HTML文档中。此时,一次只需为一个连接提供服务。也就是说,服务器是一个无限循环,读取请求并发出响应。

4) 将服务器修改为支持并发接收请求的模式。

Web服务器通常能够处理并发请求。并发请求指当一个请求未处理完时另外一个请求同时开始处理。请将前面步骤中建立Web服务修改为支持并发接收请求的模式,可以采用Java多线程或线程池的方式。



原创粉丝点击