zoukankan      html  css  js  c++  java
  • http与tcp,udp的区别

    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协议。

  • 相关阅读:
    Python中模块之shutil及zipfile&tarfile的功能介绍
    Python中模块之sys的功能介绍
    Python中模块之os的功能介绍
    Python中模块之random的功能介绍
    Python中模块之time&datetime的功能介绍
    Python中模块json与pickle的功能介绍
    博客更新地址,
    Js 执行上下文和作用域
    Js 原型,原型链
    Js 中的事件委托/事件代理
  • 原文地址:https://www.cnblogs.com/imfjj/p/11747910.html
Copyright © 2011-2022 走看看