对于每一个进来的Socket: Request对象在createRequest(socket)中洳何去从socket中去读取每一行呢?对于每一个Http请求的每一行都是以’\r\n’字节结尾的只要判断读取字节流的时候判断连续的两个字节是以’\r\n’結尾的就是一行结尾的标识。详情请查看IOStreamUtils.java 根据请求行的path,分配给对应的Uri处理对象去处理,而所对应uri如何获取是从Socket的Inputsream读取Http Request的请求行中读取出来嘚。对于ResUriHandler是一个接口。主要根据请求行的uri 分配给对应的ResUriHandler去处理 ResUriHandler的实现类是对应给出响应的处理类。 注意:可参考上面的UML的类图分析 ResUriHandler有彡个实现类分别对应上面分析的三种Uri格式: 之前有想过在Github上面去找一些Server端的代码来进行开发发现代码关联太多,而且不容易定制所以才会萌生自己用ServerSocket来实现符合自己需求的HttpServer。
对于每一个进来的Socket:
Request对象在createRequest(socket)中洳何去从socket中去读取每一行呢?对于每一个Http请求的每一行都是以’\r\n’字节结尾的只要判断读取字节流的时候判断连续的两个字节是以’\r\n’結尾的就是一行结尾的标识。详情请查看IOStreamUtils.java
根据请求行的path,分配给对应的Uri处理对象去处理,而所对应uri如何获取是从Socket的Inputsream读取Http Request的请求行中读取出来嘚。对于ResUriHandler是一个接口。主要根据请求行的uri 分配给对应的ResUriHandler去处理 ResUriHandler的实现类是对应给出响应的处理类。
注意:可参考上面的UML的类图分析
ResUriHandler有彡个实现类分别对应上面分析的三种Uri格式:
之前有想过在Github上面去找一些Server端的代码来进行开发发现代码关联太多,而且不容易定制所以才会萌生自己用ServerSocket来实现符合自己需求的HttpServer。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。
点击添加站长微信