编写简单的HTTP1.0服务器程序
- 构建端口为8000的简单HTTP1.0服务器程序;
- 该服务器能够对所有的请求(不论是否合法)都给予应答,其中要求对 HTTP 的 GET 方法根据 RFC 规定给予成功的响应;
- 在任何情况下,服务器都要能够提供服务;
- 通过给命令行传递参数指定服务器的默认访问目录(例如把c:\www作为 命令行参数传递给服务器,那么如果客户发送请求 GET /test/index.html, 那么服务器应该把文件 C:\www\test\index.html 发送给客户端,如果文件 不存在应该提示出错);(可选)
- 服务器在成功地给予响应的同时,应该能够根据文件的扩展名,推断出至 少 2 种文件的 MIME 类型(例如如果文件的扩展名为.htm 或者.html,那 么文件的 MIME 类型为 text/html);
- 服务器能够响应嵌入JPEG文件的HTML页面;
- 能够通过 Netscape or Internet Explorer 浏览器访问 HTTP1.0 服务器中存放 的Web页
6 回复
我也是新手,看了一下似乎都是hello world中的内容,空闲一些,我试着写个例子好了。
- 构建端口为8000的简单HTTP1.0服务器程序;
监听8000端口
- 该服务器能够对所有的请求(不论是否合法)都给予应答,其中要求对HTTP 的 GET 方法根据 RFC 规定给予成功的响应;
同上,RFC规定没有去查,我理解是只要访问都要有应答,路由可以实现任何页面都要有输出,做个输出404
- 在任何情况下,服务器都要能够提供服务;
这道题我不太明白,不知道是不是说要任何情况下都要有日志输出,还是要输出404
- 通过给命令行传递参数指定服务器的默认访问目录(例如把c:\www作为命令行参数传递给服务器,那么如果客户发送请求 GET /test/index.html, 那么服务器应该把文件 C:\www\test\index.html 发送给客户端,如果文件 不存在应该提示出错);(可选)
路由可以实现
- 服务器在成功地给予响应的同时,应该能够根据文件的扩展名,推断出至 少 2 种文件的 MIME 类型(例如如果文件的扩展名为.htm 或者.html,那 么文件的 MIME 类型为 text/html);
大概是获取http头信息,然后修改Content-Type吧
- 服务器能够响应嵌入JPEG文件的HTML页面;
修改Content-Type为图片类型,访问的html的时候就是图片了
- 能够通过 Netscape or Internet Explorer 浏览器访问 HTTP1.0 服务器中存放
的Web页
监听8000端口
可以看看社区朴灵写的“用NodeJS打造你的静态文件服务器”,你需要了解的东西里面基本都有,由浅到深入,通俗易懂,这个是链接,http://cnodejs.org/topic/4f16442ccae1f4aa27001071