HTTP TCP UDP

一.TCP/IP

1.OSI模型:七层

       1.应用层:为应用程序提供服务,应用程序间沟通包括超文本传输协议(HTTP),文件传送协议(FTP),远程登录协议(TELNET),简单邮件传送协议(SMTP),DNS域名解析协议,简单文件传送协议(TFTP),简单网络管理协议(SNMP),DHCP动态主机配置协议

       2.表示层:将应用处理信息转换为适合网络传输的格式,负责数据格式转换

       3.会话层:建立和断开通信连接(这三层协议可以共用)

       4.传输层:(数据报)提供处于网络连接中计算机之间的数据传输和数据控制,提供端到端的交换数据的机制  功能:1.为端到端连接提供传输服务;2.分为可靠/不可靠协议,涉及(传输控制协议)TCP/(用户数据报协议)UDP协议;3.为端到端提供流量控制,差错控制,服务质量等管理服务。

       5.网络层:(数据包)主要负责寻找地址和路由选择,在多条路线中选出一条传输线路进行数据传输,处理网络数据上的数据包。包含IP协议

       6.数据链路层:(帧)负责物理层的互联,结点间的通信传输,物理地址寻址,数据成帧,流量控制,数据检错和重发,包含ARP、和STP

       7.物理层:(比特)规定了激活、维持、关闭通讯端点之间的机器特性、电气特性、功能特性以及过程特性。

2.TCP/IP模型

TCP/IP模型中主要把会话层、表示层和应用层集中到应用层,表现出五层模型

应用层->传输层->网络层->数据链路层->物理层

分层的好处:如果互联网由一个协议统一规划,某个地方需要改变时,就必须将所有部分整体更换。分层之后,只需要替换变动的层,每层可以自由更改。

注意:TCP/IP协议进行通信时,会通过分层顺序和对方进行通信。客户端从应用层出发,服务端从链路层出发。

每条tcp只有两个端点,只能是端到端,点到点提供可靠交付服务提供全双工通信面向字节流首部最低20个字节,对资源要求较多

UDP:面向无连接的,不可靠的用户数据报协议无连接,发送数据不需要连接尽最大努力交付,不保证可靠交付,不使用拥塞控制,适合多媒体通信,较好的实时性面向报文,支持一对一,一对多,多对多交互通信首部开销小,只有8字节,对资源要求较少

二、HTTP

       HTTP是超文本传输协议,是层次模型中的应用层协议,用于客户端和服务器等等一系列运作流程,可以说web是建立在HTTP协议上进行通信的。

get:获取服务资源 ,并返回实体主体

post:提交信息给服务器,提交数据进行处理请求

        GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同,区别是get发送一次数据包(header+data),post发送两次数据包(一次header,一次data)。

版本:

       1.0使用非持久连接,客户端必须为每一个待请求的对象建立一个新连接,需要使用keep-alive告知服务器建一个长连接;1.1默认支持长连接

       2.0大幅度提高了web性能,在1.x语义兼容的基础上,进一步减少网络延迟,实现低延迟高吞吐量。

三.握手

三次握手

三次握手是建立连接的过程。

当客户端向服务端发起连接时,会向服务端先发一包连接请求数据,过去询问一下,能否与你建立连接,这包数据我们称为 SYN 包。如果对端同意连接,则回复一包 SYN + ACK 包,客户端收到之后回复一包 ACK 包,连接建立。

因为这个过程中互相发送了三包数据,所以称为三次握手。

为什么是三次握手而不是两次握手就建立连接?

就是为了解决网络信道不可靠的问题,为了在不可靠的信道上建立可靠的连接。

四次挥手

处于连接状态的客户端和服务端都可以发起关闭连接状态的请求。此时需要四次挥手来进行连接关闭。

假设客户端主动发起关闭连接请求,它需要向服务端发起一包 FIN 包。表示要关闭连接,自己进入终止等待1状态。这是第一次挥手。

服务端收到 FIN 包,回复一包 ACK 包,表示自己进入了关闭等待状态。客户端进入终止等待2状态。这是第二次挥手。

服务端此时还可以发送未发送的数据,而客户端还可以接收数据。

待服务端发送完数据之后,发送一包 FIN 包,进入最后确认状态。这是第三次挥手。

客户端收到之后,回复 ACK 包,进入超时等待状态。经过超时时间后关闭连接。而服务端收到 ACK 包后立即关闭连接。这是第四次挥手。

客户端需要进入超时等待时间是为了保证服务端能收到 ACK 包。

从浏览器地址栏输入URL后,到页面渲染出来,整个过程都发生了什么?

其实这个问题的回答可以非常细致,能从信号与系统、计算机原理、操作系统聊到网络通信、浏览器内核,再到 DNS 解析、负载均衡、页面渲染等,但这门课程主要关注前端方面的相关内容,为了后文表述更清楚,这里首先将整个过程划分为以下几个阶段。

  1. 查询缓存
  2. DNS域名解析
  3. 建立 TCP 连接
  4. 向服务器发送 HTTP 请求,返回结果
  5. 浏览器解析 HTML
  6. 浏览器布局渲染

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP是一种应用层协议,它用于在客户端和服务器之间传输超文本的数据。HTTP协议基于TCP协议来传输数据,通过客户端和服务器之间的socket连接进行通信。 TCP是一种可靠的传输协议,它提供了面向连接的数据传输服务,确保数据的可靠性和顺序性。而UDP是一种无连接的传输协议,它不保证数据的可靠性和顺序性,但传输效率更高。 在网络分层中,HTTPHTTPS协议属于应用层,而TCPUDP协议则属于传输层。 HTTP协议默认使用的端口是80,如果使用了其他端口,必须明确指定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [通信协议——HTTPTCPUDP](https://blog.csdn.net/Jacksun_huang/article/details/88175333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [计算机网络基础知识之HTTPTCPUDP协议详解,看这篇就够了](https://blog.csdn.net/weixin_43195884/article/details/127618551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值