应用层中常见的协议主要有
1.文件传输协议 FTP
2.域名解析协议 DNS
3.邮件发送和接受协议 SMTP POP3/IMAP
4.超文本传输协议 HTTP
前三个协议已经在前面的文章介绍过了,今天介绍计算机网络中大家天天都在使用的协议
![40650bb7d4866ad382200a3f1e377dc0.png](https://i-blog.csdnimg.cn/blog_migrate/6024283eadc21a8b80e27994c711d4f3.jpeg)
HTTP协议
HTTP Hyper Text Transfer Protocol 超文本传输协议
HTTP传输协议是基于TCP的无状态传输协议。
1.HTTP传输是基于TCP的,所以提供的是可靠传输,也就是传输过程有连接建立,传输数据,断开连接的过程
2.HTTP传输是无状态的,也就是说你每次访问服务器,服务器都不会记住你是谁,你访问了什么网页。比如你第一次登陆163邮箱,输入账号密码,登陆成功,退出后。第二次登陆163邮箱,登陆界面还会让你输入账号,密码(在现实操作中,为什么登陆界面可以记住账号和密码是由于使用了cookie技术。)
HTTP中的对象
HTTP被称为超文本传输协议,说明了用户和服务器在传输的过程中,传输的对象既有文字,图片,又有视频,声音等等。让我们实际看看,一个网页中都包含有哪些对象,我们这里使用的是chrome浏览器中的开发者工具查看网页。
![e01dd3fceb96db350c1b3204d5817ac7.png](https://i-blog.csdnimg.cn/blog_migrate/4bea6bf7a613d297e0a2d7c2cf9adf59.jpeg)
这是一个超链接对象
![0941f1a02850da122c01b4a4a4d0b9a1.png](https://i-blog.csdnimg.cn/blog_migrate/59b4d3928854c7ba4857c9ea411a682a.jpeg)
这是一个图片对象
以上两张图片只是列举了网页中众多对象中的两个。
持久性连接的HTTP和非持久性连接的HTTP
http 1.0协议采用的是非持续性连接,http1.1采用的是持续性连接。 目前最常用的http1.1
![ef08f641b14556191878d82e0f1a3028.png](https://i-blog.csdnimg.cn/blog_migrate/0f976a640e5efe2bbebac0bb9197dea8.jpeg)
HTTP 1.1
HTTP协议中服务器端使用的是80端口,HTTP的具体连接过程见下图。
![fabe976f68c1a46e02ad677e926365be.png](https://i-blog.csdnimg.cn/blog_migrate/a932437cded9ca8cd43623e63a4f6f42.jpeg)
HTTP连接过程
当一个网页中含有多个对象的时候,非持久性HTTP连接,每请求一个对象就需要步骤1,2,3
持久性HTTP连接,请求第一个对象的步骤是1,2,3但是请求第二个对象和剩下的对象步骤是
2,3。两种连接方式最主要的区别是,持久性HTTP连接不需要每次都建立TCP连接,第一次TCP连接建立后,服务器就在80端口一直等待。
持久性HTTP连接分类
1.带有流水机制的持久性连接
2.不带有流水机制的持久性连接
![8c5b33e2c1cebead35b92d24f2ca9b12.png](https://i-blog.csdnimg.cn/blog_migrate/fde5c30f1b15e11ca3033495fbc7497f.jpeg)
不带和带有流水机制的持久性连接
两者主要的区别就是,发送对象请求后,是否等待对象返回后再发送下一个对象请求。
如果等待则是不带有流水机制的持久性连接,如果不等待则相反。