详细代码在这:MikeDog
文件结构
- |–HttpServer.java
- |–Request.java
- |–Response.java
具体作用
- 首先是三个类,一个是主要的Server类,然后是Request和Response类,后两个是HTTP协议中的两个用于反馈和接受的类。
-
Request中主要的方法就是从一个HTTP头中抽取出URI,也就是访问路径。代码如下:
- 主要是因为HTTP协议中的地址信息,以下是一个HTTP请求协议:
- 从中可以看到URI在第一行的两个空格之间,当然,上面的写法比较风骚,因为这样的写法很容易带来漏洞,因为如果URI并不是标准的,或者说,有人故意发送一个错误的URI,导致解析错误什么的。
-
然后看Response中的代码,主要也是写出的,因为从Request中取出目标名称之后就可以从定义的ROOT目录中寻找那个HTML文件,然后要做的就是读出来,写出去。
- 于是这就成了,其中new File(HttpServer.WEBROOT, request.getUri());,就是读取文件的代码
- 注意:在HTTP头中,有文件大小的描述,在写出去的时候需要注意修改。如下:
-
最后就是HttpServer了,他的作用就是建立Socket连接,然后交给Request解析,然后将结果写入Response.
- 下面的代码就是过程,简单易懂:
-
最后就是我没有想到的一点,也是学到的一个新的方面:
- 即通过这个方法来获取网站根目录
学习了哈