| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 浏览一个网站时的整个过程 -> 正文阅读 |
|
[系统运维]浏览一个网站时的整个过程 |
在浏览器输入一个URL网址,按下回车时会发生什么? 一、首先会将域名(URL网址)解析成IP地址; 二、与目的主机建立TCP连接; 三、发送与收取数据(浏览器与目的主机开始HTTP或HTTPS访问过程); 四、与目的主机断开TCP连接; 域名解析:通过DNS域名解析成ip地址然后访问地址; TCP连接(三次握手):第一次握手: 客户端先向服务器发送一个报文数据包; 数据包中的TCP首部内容:SYN=1、ACK=0、seq=x; 第二次握手: 服务器收到客户端的第一个数据包后,根据 SYN=1、ACK=0判断出这是主动建立连接的数据包; 接着服务器会给客户端发送一个数据包作为回应; 数据包中的TCP首部内容:SYN=1、ACK=1、ack=x+1、seq=y; 第三次握手: 客户端收到服务器的响应后会再给服务器发送一个数据包; 数据包中的TCP首部内容:SYN=0、ACK=1、ack=y+1、seq=x+1; 发送与收取数据 :请求报文:发送一个请求报文给目标服务器,服务器根据请求报文中携带的请求信息进行处理。 请求报文结构: 第一行是包含了请求方法、 接下来的多行都是请求首部 一个空行用来分隔首部和内容主体 最后是请求的内容主体 响应报文当服务器处理完请求后,会将处理结果放入响应报文中返回给客户端。 响应报文结构: 第一行包含协议版本、状态码以及描述,最常见的是 接下来多行也是首部内容 一个空行分隔首部和内容主体 最后是响应的内容主体 与TCP断开连接(四次挥手):第一次挥手: 客户端向服务器发送连接释放的数据包,并停止发送数据; 数据包中的TCP首部内容:FIN=1、ACK=0; 第二次挥手: 此时客户端没有数据要发送给服务器了,但是服务器还有数据要发送给客户端,客户端仍可以接收; 数据包中的TCP首部内容:FIN=0、ACK=1; 第三次挥手: 若服务器已经没有向客户端发送的数据了,其应用进程就可以通知TCP释放连接,并向客户端发送一个数据包; 数据包中的TCP首部内容:FIN=1、ACK=1; 第四次挥手: 客户端收到服务器发的释放报文数据包后,向服务器发送确认数据包; 数据包中的TCP首部内容:FIN=0、ACK=1; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 18:31:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |