一、何为HTTP协议
http协议: 超文本传输协议,是一个简单的请求-响应协议,它通常运行在TCP之上。
我们说, 应用层协议是我们程序猿自己定的.但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一(也就是你自己可以写别的协议,只要你愿意)。
原来我们讲过了TCP传输的过程,就是两台主机之间的通讯。那我们仅仅只是发送一串数据过去吗?我们想想协议是什么?协议就是约定,约定双方怎么处理数据。
举个例子:
有一天,A要给B邮寄一个密码本,所以A找来了邮递员C【TCP/IP协议】,把B的信息告诉了邮递员C,邮递员C把密码本打包【封装】,C骑着电驴先找了一下本地的城市【局域网】,结果没找到。邮递员C想,这肯定是在别的城市了,骑着电驴肯定不靠谱。邮递员去了邮局【路由器】,把电驴换成了汽车,选择了城市的一条高速路口出去了【NAT+NAPT协议】,然后开始一个城市一个城市找【RIP协议】,最终在一个城市找到了【B的地址必须为公网,有疑问看上一篇文章】,把密码本给了B。B拿到密码本,怎么获取里面的内容呢?原来A和B提前就约定好了【http协议】,然后B根据这个约定,读取了数据,原来A是找B要个照片【request请求】。B根据约定,把这个图片发给了B【response响应】。
现在A就是浏览器,B就是服务器,http协议就是他俩直接约定的方式。http协议已经处于应用层了。