使用JAVA实现简易HTTP服务器

  • 简述系统
  • 参考资料:
  • 参考博客:
  • 别人是怎么做的
  • 2. 技术储备:
  • 需要什么技术?
  • 已具备的技术基础?
  • 准备学习什么技术?


简述系统

参考HTTP协议,使用Java Socket网络编程实现简易的多线程HTTP服务器,可以正常响应客户端(浏览器)的GET与POST。可以根据浏览器指定访问的URL获取服务器上相应的网页文件(.html)并返回。

参考资料:

Java参考代码:java实现http服务器述 HTTP简介:
http://zsxxsz.iteye.com/blog/568250

参考博客:

JAVA实现HTTP服务器端静态Web服务器-面向对象开发面向对象系统分析与设计

HTTP 代理服务器的设计与实现

别人是怎么做的

  • 把提供服务的Web服务器抽象成一个类(HTTPWebServer)
    提供Web服务器的初始化方法,在初始化方法里面创建socket对象
    初始化服务端套接字,设置监听,
    提供一个开启Web服务器的方法,让Web服务器处理客户端请求操作。
  • 1、使用socket简单实现http协议
    2、使用jdk自导的httpserver组件
    3、使用apache开源的httpcore组件实现。
    MyHttpClient.java: 模拟浏览器的行为, 向服务器发送get/post请求,然后打印出服务器返回的消息。这样就可以查看当一个请求到来之后, 服务器到底都给浏览器发送了哪些消息。
  • MyServer.java: 模拟server端接收浏览器的请求,然后把整个请求的报文打印出来。程序运行之后直接用浏览器测试。
    主程序MyHttpServer. 测试文件post.html, upload.html都放在上面程序定义的WEB_ROOT下面。
    post.html:处理普通的post请求 upload.html:测试带附件的post请求
    一切准备妥当,并且MyHttpServer运行之后,
    在浏览器输入http://localhost:8080/post.html和http://localhost:8080/upload.html即可进行测试.

2. 技术储备:

需要什么技术?

web作为程序界面设计、git代码管理、多线程

已具备的技术基础?

Socket

准备学习什么技术?

JUnit, git, 阿里巴巴代码规约IDE插件。
数据如何存储:文件
界面:GUI、控制台。
开发工具:Eclipse, NetBeans, JUnit, git, 阿里巴巴代码规约IDE插件。