基于 Java 原生 Socket API 开发的轻量级 HTTP 客户端与服务器,完全不依赖任何第三方框架,纯原生实现 HTTP 协议基础功能及用户认证场景。
本项目旨在通过 Java 原生 Socket API 构建完整的 HTTP 通信体系,包含客户端与服务器端实现。项目遵循 HTTP/1.1 协议规范,支持基础请求响应处理、长连接机制及用户注册登录功能,适合用于学习 HTTP 协议原理及 Socket 网络编程实践。
- 编程语言:Java 8+
- 核心技术:Java Socket API(BIO 模型)、HTTP/1.1 协议
- 开发工具:IntelliJ IDEA、Git、Postman(接口测试)
- 代码托管:GitHub
- 支持 HTTP 方法:GET、POST
- 状态码支持:200(成功)、301(永久重定向)、302(临时重定向)、304(未修改)、404(资源不存在)、405(方法不允许)、500(服务器内部错误)
- 实现 HTTP 长连接(Keep-Alive)机制
- MIME 类型支持:
- 文本类型:text/html、text/plain
- 非文本类型:image/png
- 业务功能:
- 用户注册接口(POST /user/register)
- 用户登录接口(POST /user/login)
- 内存级数据存储(无需持久化)
- 静态资源服务:支持访问 static 目录下的 HTML、文本、图片等资源
- 支持发送 GET 和 POST 请求
- 完整解析并呈现服务器响应(响应头 + 响应体)
- 状态码处理:自动处理 301、302 重定向,支持 304 缓存判断
- 长连接支持:复用 TCP 连接减少握手开销
- 连接池管理:维护多个主机的连接池,提升请求效率
- JDK 8 及以上
- Git(代码拉取)
- 任意 Java 开发工具(推荐 IntelliJ IDEA)
git clone https://github.com/594mzy/HttpProject.git
cd HttpProjectplaintext
HttpProject
├─ src
│ ├─ com.http.common
│ │ ├─ Request.java
│ │ ├─ Response.java
│ │ ├─ ParamParser.java
│ │ ├─ UrlParser.java
│ │ ├─ BIOTransport.java
│ │ ├─ SocketPool.java
│ │ └─ MimeUtil.java
│ ├─ com.http.server
│ │ ├─ HttpServer.java
│ │ ├─ ClientHandler.java
│ │ ├─ RequestParser.java
│ │ ├─ Router.java
│ │ ├─ ResourceHandler.java
│ │ ├─ ResponseWriter.java
│ │ └─ UserHandler.java
│ ├─ com.http.client
│ │ ├─ HttpClient.java
│ │ ├─ ResponseParser.java
│ │ └─ RedirectHandler.java
│ ├─ com.http.test
│ └─ static
│ ├─ index.html
│ ├─ test.txt
│ └─ test.png
└─ README.md
- 启动服务器:运行
com.http.server.HttpServer类的 main 方法(默认端口 8080) - 客户端测试:
- 运行
com.http.client.HttpClient类的 main 方法进行示例请求 - 或使用 Postman 测试接口:
- 注册:POST http://localhost:8080/user/register,参数
username=xxx&password=xxx - 登录:POST http://localhost:8080/user/login,参数
username=xxx&password=xxx - 访问静态资源:GET http://localhost:8080/static/index.html
- 注册:POST http://localhost:8080/user/register,参数
- 运行
- 项目创建者:594mzy(缪周洋)
- 协作开发者:myx,zyl,shy(缪宇轩,朱雨乐,盛浩宇)