1.网络协议的概念
(1)在学习网络课程的时候,老师会讲iso七层模型,有应用层 表示层 会话层 传输层 网络层 数据链路层 物理层,其中http就属于应用层,tcp与udp是属于传输层,如图1.1(百度百科copy)
图1-1
(2)除了7层模型还有一个就是4层模型,叫做tcp/ip协议族,分为应用层,传输层,internet层 网络层接入层四个层次 图1-2
图1-2
2.http和tcp的区别
(1)层次不同,http属于应用层,tcp属于传输层
3.http和tcp的联系(参考https://www.cnblogs.com/gotodsp/p/6366163.html)
(1)http是基于tcp,就相当于生活中的吃饭时候你都会用到碗,这个碗就是tcp,吃饭这件事情就相当于http,因为我们http发送数据之前,会先进行tcp三次握手,记住这时候只是发送一些状态码的确认等,并没有对http的数据进行发送。
(2)http长连接和短连接,其实就是tcp长连接与短连接,在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,请求结束就中断连接,HTTP1.1就使用长连接,
用长连接的HTTP协议,会在响应头加入这行代码:
Connection:keep-alive
使用长连接每次打开一个网页除了第一次需要三次握手连接,接下来请求服务器就不用再握手了,就一直使用这个连接,这个keep-alive不会永久保持,这个可以在服务器端设置
(3)长连接和短连接简短概括
短连接就相当于每次一碗饭就去换一个碗,长连接就是每次吃饭都使用这个碗
4.tcp和udp的区别
(1)tcp是面向连接的,udp不是面向连接的,怎么说呢?就相当于我们生活中打电话或者微信聊天,要先嘟嘟嘟连接,之后才可以打电话聊天,这个就是面向连接的,也是比较可靠的,udp是不用先去做连接的,所以叫做面向非连接,类似生活中发短信,直接发送过去
(2)看图表(参考https://www.cnblogs.com/hanfanfan/p/9579771.html)
TCP |
UDP |
|
是否连接 |
面向连接 |
面向非连接 |
传输可靠性 |
可靠 |
不可靠 |
应用场合 |
传输大量的数据,对可靠性要求较高的场合 |
传送少量数据、对可靠性要求不高的场景 |
速度 |
慢 |
快 |
5.疑惑点
(1)有人会问了,为什么http是基于tcp而不是udp呢?
这个tcp协议比较可靠,不过,目前,有人正在研究基于TCP+UDP混合的HTTP协议。