个人对协议的一些理解

所谓协议,是虚无缥缈的东西,它仅仅是一套规范。协议需要具体的事物实现才有价值,具体到网络世界中,HTTP协议是需要客户端程序(浏览器)和服务器容器程序(Tomcat)共同实现的。假设HTTP协议在传输层的协议就是TCP协议,那么可以把浏览器和tomcat简单的抽象成为两个Socket。一个客户端Socket,一个ServerSocket。
用户输入网址回车,浏览器收集网址信息和HTTP协议中规定的其他信息,按照协议顺序把所有信息整理成一大段字符串,调用Socket以流的方式发给tomcat。
tomcat收到流以后,按照HTTP协议解析这些信息,它明白每一行代表什么东西,于是找到用户需要的资源,加上一些HTTP响应报文需要的其他信息,利用accept到的Socket以流的方式写回给浏览器。
浏览器拿到这个流继续解析,根据响应报文的格式,找到需要解析的资源和解析资源的姿势。
在这个过程中,浏览器和tomcat都必须知道HTTP请求报文的格式和响应报文的格式。对于浏览器来说,它必须知道请求报文的格式才能发送正确的请求,也必须知道响应报文的格式才能正确解析tomcat回传的东西。同理,tomcat必须知道请求报文的格式才能解析出浏览器要什么,也必须知道响应报文的格式才能正确回传信息。
按照这个逻辑,写出一个简易的浏览器和服务器容器程序其实是不难的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值