Skip to content

Commit 86a0cb9

Browse files
committed
Update README.md
1 parent a75f523 commit 86a0cb9

File tree

1 file changed

+75
-3
lines changed

1 file changed

+75
-3
lines changed

README.md

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
- [x] 程序运行方式
1212
- [x] 功能点
1313
- [x] 说明、运行截图
14-
- [ ] 关键数据结构、类说明
15-
- [ ] 名字与对应功能
14+
- [x] 关键数据结构、类说明
15+
- [x] 名字与对应功能
1616

1717
# 1. 概览
1818

@@ -319,4 +319,76 @@ HttpServer 与 HttpClient 均采用 Java NIO.2 模型进行开发,使用了 `j
319319
- [Target Set](./src/main/java/edu/nju/http/server/target/TargetSet.java)
320320

321321

322-
# 4. 源码结构
322+
# 4. 代码结构
323+
324+
325+
```java
326+
main/
327+
├── java
328+
│   └── edu.nju.http
329+
│   ├── client /* Client Package */
330+
│   │   ├── ClientDriver.java // main 函数入口
331+
│   │   ├── HttpClient.java // 程序主轴
332+
│   │   └── StatusHandler.java // Status code 处理类
333+
│   ├── exception /* Exception Package */
334+
│   │   ├── InvalidCommandException.java
335+
│ │ │ // 用于 CLI,提示指令不合法
336+
│   │   └── InvalidMessageException.java
337+
│ │ // 用于 Message Parser,提示解析错误
338+
│   ├── message /* Message Package */
339+
│   │   ├── HttpMessage.java // 抽象类
340+
│   │   ├── HttpRequestMessage.java // 继承 HttpMessage
341+
│   │   ├── HttpResponseMessage.java // 继承 HttpMessage
342+
│   │   ├── MessageHelper.java // 工具类
343+
│   │   ├── ResponseMessageFactory.java
344+
│ │ │ // Http Response Message 制造工厂
345+
│   │   ├── consts /* Constant Package */
346+
│   │   │   ├── Headers.java // Header 常量类
347+
│   │   │   └── WebMethods.java // Method 常量类
348+
│   │   ├── packer /* Packer Package */
349+
│   │   │   ├── MessagePacker.java
350+
│   │   │ │ // 包装并发送 Http Message
351+
│   │   │   └── encode
352+
│   │   │ │ /* Content-Encoding */
353+
│   │   │ │ /* & Transfer-Encoding 策略类 */
354+
│   │   │   ├── ContentGzipEncodeStrategy.java
355+
│   │   │   ├── EncodeStrategy.java
356+
│   │   │   ├── SourceEncodeStrategy.java
357+
│   │   │   ├── TransChunkedEncodeStrategy.java
358+
│   │   │   └── TransContentLengthEncodeStrategy.java
359+
│   │   └── parser /* Parser Package */
360+
│   │   ├── CustomizedReader.java // 自制字节流读取器
361+
│   │   ├── MessageParser.java // 解析并接收 Http Message
362+
│   │   ├── contentdecode
363+
│   │   │ │ /* Content-Encoding 策略类 */
364+
│   │   │   ├── ContentDecodeStrategy.java
365+
│   │   │   └── ContentGzipDecodeStrategy.java
366+
│   │   └── transdecode
367+
│   │   │ /* Transfer-Encoding 策略类 */
368+
│   │   ├── TransChunkedDecodeStrategy.java
369+
│   │   ├── TransContentLengthDecodeStrategy.java
370+
│   │   └── TransDecodeStrategy.java
371+
│   ├── server /* Server Package */
372+
│   │   ├── HttpServer.java // 程序主循环
373+
│   │   ├── ServerDriver.java // main 函数入口
374+
│   │   ├── TargetHandler.java // Target 处理类
375+
│   │   └── target /* Target Package */
376+
│   │ │ /* 包含各 Mapping 方法 */
377+
│   │   ├──TargetSet.java
378+
│   │ │ // 抽象类,其他类应继承此类
379+
│   │   ├── Common.java
380+
│   │   ├── Html.java
381+
│   │   ├── LoginSystem.java
382+
│   │   └── Mapping.java
383+
│   └── util /* Utility Package */
384+
│   ├── ArgIterator.java // 参数遍历器,用于 CLI
385+
│   ├── Config.java // 包含各参数信息
386+
│   └── Log.java // 调试方法类
387+
└── resources
388+
├── default_status_text.json // 默认 Status Code 对应文字
389+
├── global_headers.json // 默认 Server Headers
390+
├── mime.json // Suffix -> Content-Type 映射
391+
└── target_path.json // Target 类注册表
392+
//( 用于在 Target Handler 初始化时用
393+
// Reflection 自动装配 )
394+
```

0 commit comments

Comments
 (0)