构建简单http服务器

web服务器大家都会用,可是它的实现原理是到底如何呢,其实只要读一下http协议,大家基本也能开发出一个简单的web服务器出来了。

web请求分为如下几步

1. 浏览器向服务建立TCP/IP连接,Java中通过java.net.Socket实现

2. Web浏览器向Web服务器发送请求命令。通过Socket的输出流向服务器写如下信息:

  GET /uri HTTP/1.1,很显示第一部分为请求的方法,第二部分为请求的URI,第三部分为请求的协议

3. Web浏览器发送请求头信息。这部分包括浏览器的版本信息,接受的格式、编码等,还有非常有用的一个数据Cookie也是在这里发送的。

4. 头信息发送完后,发送一个空格表示结束,如果是post请求,则继续发送Post正文。

5. Web服务器做出应答,如返回"HTTP/1.1 200  OK",表示请求成功,或者返回404,500等状态信息表示找不到页面或服务器错误。

6. Web服务器发送应答头信息,这部分表示了返回的内容类型(如是gif还是exe还是html等),返回的数据的编码,长度,当然还有Cookie(通过set-Cookie来发送)

7. 在发送完应答头后,则发送一个空行。如果有响应正文,则在后面继续发送响应内容。

8. 关闭TCP/IP连接

以下代码简单的模拟了这一过程。

客户端代码:

服务器代码如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值