网络七层模型及TCP、UDP,一次HTTP请求都发生了什么
一、七层网络模型 http协议运行在应用层 二、TCP-UDP 1.TCP、UDP协议的区别 2.一次Http 请求,这个过程都发生了什么 3.TCP 协议如何保证可靠传输 4.HTTP和HTTPS的区别 5.TCP三次握手和四次挥手、 6.常见的状态码。 2.1 TCP-UDP 区别
传送数据之前不需要先建立连接,直接向目标机器发送数据。远地主机在收到 UDP 报文后,不需要给出任何确认。UDP 报文可能丢失,但是在视频流、直播流 等场景下 UDP 工作非常有效率(即时通信,不在乎数据丢失,和安全)如 视频 、直播等。
面向连接的服务。先连接再传数据,数据传送结束后要释放连接。 TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的运输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。(信息安全比较重要的数据传输)。 2.2 一次Http请求都发生了什么 1.用户浏览器输入网址 2.浏览器拿到网址去请求IP 3.向目标IP 发送TCP连接 3次握手 4.服务器解析请求,并返回处理好的 html 页面(字符串) 5.浏览器按照规则解析渲染画面 6.连接结束 第一点:无 第二点:浏览器解析用户输入网址的过程顺序为: 先检查本地是否有对应的IP地址,找到就返回。找不到向上一级DNS服务器请求,直到找到或 根节点。 浏览器缓存--> 系统缓存--> 路由器缓存--> ISP DNS缓存--> 从根域名服务器递归搜索 都没找到就返回错误 第三点:三次握手 第一次握手:发送端先发送一个带SYN (synchronize) 同步标志的数据包给 Server,在一定时间内等待接收回复 第二次握手:服务端接收到SYN数据包后,返回一个带 SYN/ACK (acknowledgement charactor) 确认字符 标志的数据包来表示确认收到消息。 第三次握手:接收方接收到Server的确认消息后,再发送一个带ACK标志的数据包给接收端,表示握手成功 注意:上述过程都有一个等待时间,如果在等待时间内Server、或者Client 没有回复,本次请求视作失败,再次请求。Server没有回复的原因可能是栈满了
三次握手的作用:
第四步:ngimx + uwsgi (Django) 为列 (未完成) 1.Nginx 部分(未完成) 2.Django部分:
第五步:浏览器渲染 浏览器拿到结果按照HTML CSS JS 进行渲染 第六步:四次挥手,断开连接
(编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |