打开一个页面,整个过程会使用哪些协议?

news2024/12/24 0:10:18

打开一个页面,整个过程会使用哪些协议?

网络通信模型可以用下图来简单表示,根据下面这个顺序,我们来说明,打开一个页面,整个过程会使用哪些协议?

在这里插入图片描述
首先,我们可以梳理一个简单的完整流程:

1.在浏览器中输入指定网页的URL地址;

2.浏览器通过DNS协议解析域名,获取对应的IP地址;

3.浏览器根据IP地址和端口号,与目标服务器建立TCP连接;

4.浏览器在TCP连接上发送HTTP请求报文,请求获取网页的内容;

5.服务器接收到HTTP请求后,处理请求并返回HTTP响应报文给浏览器;

6.浏览器收到HTTP响应报文后,解析响应体中的HTML代码,渲染网页的结构和样式,同时根据HTML中的其他资源的URL(如图片、CSS、JS等),再次发起HTTP请求,获取这些资源的内容,直到网页完全加载显示;

7.当浏览器不再需要与服务器通信时,它可以主动关闭TCP连接,或者等待服务器发起关闭连接的请求。

1.应用层

1.在浏览器中输入指定网页的URL地址;

URL((Uniform Resource Locator,统一资源定位符)。互联网上的每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

URL基本格式
在这里插入图片描述
URL具体格式

https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9118781422654834654%22%7D&n_type=-1&p_from=-1
可以看到在这个URL中有些信息被省略了。

1.协议: **https: ** 表示协议方案。URL 的前缀通常表示了该网址采用了何种应用层协议,常见有两种——HTTP 和 HTTPS。也有其他类型(比如文件传输时用到的 ftp: ,访问mysql时用的jdbc:mysql);

2.登录信息: 现在的网站进行身份认证一般不会通过URL进行,一般会省略;

3.域名: **mbd.baidu.com: **服务器地址,此处是一个域名,域名便是访问网址的通用名(也有可能是IP地址),域名会通过DNS系统解析成一个具体的IP地址(可以通过ping命令看到地址);

4.端口: 在上面的URL中端口号被省略了,当端口号省略的时候, 浏览器会根据协议类型自动决定使用哪个端口. 例如 http 协议默认使用 80 端口,https 协议默认使用 443 端口;

5.资源路径: /newspage/data/landingsuper: 带层次的文件路径,早先的设计是该文件通常物理存储于服务器主机上,但现在随着网络技术的进步,该文件不一定会物理存储在服务器主机上,有可能存放在云上,而文件路径也有可能是虚拟的(遵循某种规则)。

6.参数: context=%7B%22nid%22%3A%22news_9118781422654834654%22%7D&n_type=-1&p_from=-1,查询字符串(query string),本质上是一个键值对的形式 key=value,键值对之间使用&分隔,键和值之间使用=分隔。

7.片段标识: 这里的URL忽略了片段标识,片段标识主要用于页面内跳转。(例如 Vue 官方文档:
https://cn.vuejs.org/v2/guide/#%E8%B5%B7%E6%AD%A5, 通过不同的片段标识跳转到文档的不同章节)

2.浏览器通过DNS协议解析域名,获取对应的IP地址;

DNS

输入URL之后,里面的域名会通过DNS系统解析成一个具体的IP地址。

DNS,全称为域名系统(Domain Name System),是一种负责将域名解析为IP地址的系统。它由解析器和域名服务器组成,是互联网中至关重要且广泛应用的一个服务。

链接:DNS(域名解析系统)

4.浏览器在TCP连接上发送HTTP请求报文,请求获取网页的内容;

5.服务器接收到HTTP请求后,处理请求并返回HTTP响应报文给浏览器;

6.浏览器收到HTTP响应报文后,解析响应体中的HTML代码,渲染网页的结构和样式,同时根据HTML中的其他资源的URL(如图片、CSS、JS等),再次发起HTTP请求,获取这些资源的内容,直到网页完全加载显示;

HTTP/HTTPS

使用DNS,拿到目标主机的IP地址之后,浏览器可以通过目标IP地址发送请求。

链接:HTTP
链接:HTTPS

2.传输层

3.浏览器根据IP地址和端口号,与目标服务器建立TCP连接;

7.当浏览器不再需要与服务器通信时,它可以主动关闭TCP连接,或者等待服务器发起关闭连接的请求。

HTTP协议是基于TCP协议的,在应用层数据封装好后,交给传输层,经过TCP协议继续封装。

TCP协议一: TCP协议之特点和首部格式
TCP协议二: TCP协议之可靠传输
TCP协议三: TCP的三次握手和四次挥手
TCP协议四: TCP协议中的几个机制

3.网络层

2.浏览器通过DNS协议解析域名,获取对应的IP地址;

3.浏览器根据IP地址和端口号,与目标服务器建立TCP连接;

网络层的的核心功能——转发与路由:

转发:将分组从路由器的输入端口转移到合适的输出端口;
路由:确定分组从源到目的经过的路径。

IP协议
我们需要了解IP是什么和IP协议。
链接:IP协议

以上就是打开一个页面,整个过程会使用哪些协议的总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1995823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postman Pre-request Script

这个其实是普通的js脚本,有一些和postman的通信他也提供了一些快捷命令如下 postman常用参数使用 环境变量 //设置当前环境变量 pm.environment.set("key", "value"); //获取当前环境变量 pm.environment.get("key"); //清除当前…

软件测试面试题汇总,超详细整理。。。

测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话&#x…

【Windows】如何关闭Windows11安全中心中的“病毒和威胁保护”?

按下“win(徽标键)i”快捷键,选择隐私与安全性-Windows安全中心。 选择防火墙和网络保护-域保护。 将开关闭,专业网络和公用网络防火墙也同样关闭,如下图所示: 关闭防火墙后,左边菜单栏选…

函数的学习(三)

1.函数的声明和定义 在C语言中,函数的声明和定义是分开的。 函数的声明是指在程序中提前告诉编译器有一个函数存在,并且指定了函数的名称、参数类型和返回值类型。函数的声明一般放在头文件中,它的作用是告诉编译器有一个函数存在&#xff…

学生综合测评、学生测评管理系统的设计与实现

摘要 学生综合测评是学校必不可少的一个部分。在教学中,学生综合测评担负着最重要的角色。为满足如今日益复杂的管理需求,各类学生综合测评也在不断改进。本课题所设计的学生综合测评,使用JSP技术与MySql数据库进行开发,它的优点代…

快速上手的企业视频会议系统需要具备哪些能力

随着企业规模的扩张,行政会议的增多以及企业的复杂性和地域分散性导致的信息传递周期过长问题,对企业运营效率和成本产生了负面影响。为了解决这些问题,许多企业开始采用视频会议系统以实现即时沟通并降低差旅开支。视频会议系统在远程沟通方…

牛客JS题(二十九) Map保存节点

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; map的基本使用forEach的注意点 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"utf-8" /></head><body><p>1</p><p>2<…

24.8.9数据结构|链栈和队列

链栈 1、理解 实际上是一个仅在表头进行操作的单链表,头指针指向栈顶结点或头结点,以下恋栈均指带头结点的链栈. 2、 基本操作 1、定义结构&#xff1a;节点含有数据域和指针域 2、初始化操作&#xff1a;建立一个带头结点的空栈 3、取栈顶元素操作&#xff1a;取出栈的栈顶元…

【最新】推荐6款论文ai写论文软件推荐网站平台

在当前的学术研究和写作环境中&#xff0c;AI写作工具已经成为许多学者和学生的重要助手。这些工具不仅能够提高写作效率&#xff0c;还能帮助优化文章结构、润色语言以及进行查重等任务。以下将推荐六款优秀的AI写论文软件&#xff0c;并详细介绍它们的功能和特点。 1. 千笔-…

Spring及相关框架的重要的问题

Java框架 问题一&#xff1a;Spring框架中的单例bean是线程安全的吗&#xff1f; 看下图&#xff0c;不能被修改的成员变量就是无状态的类&#xff0c;无状态的类没有线程安全问题&#xff0c;所以在开发中尽量避免可修改的成员变量。 回答&#xff1a;不是线程安全的&#xf…

Drizzle ORM使用Azure PostgreSQL数据库迁移失败

执行 npx drizzle-kit migrate 命令报错&#xff1a; No config path provided, using default drizzle.config.ts Reading config file E:\nextjs-cloudflare-drizzle\drizzle.config.ts Using postgres driver for database querying [⡿] applying migrations...PostgresEr…

Intersection Observer API 帮你搞定前端滚动问题

前言 当我们在做需求时&#xff0c;可能经常会遇到很多跟页面的滚动有关的需求。例如 图片的懒加载&#xff1a;我们希望只加载用户当前视图窗口的图片&#xff0c;而未进入到视图窗口的图片&#xff0c;只有在进入到视图窗口时才进行加载&#xff0c;以提高页面响应速度&…

简单报表示例

简单报表 概述 简单表格报表&#xff1a;简单的表格报表。 应用场景 如下图所示&#xff0c;简单展示数据 示例说明 数据准备 在数据面板中添加数据集&#xff0c;可选择Json数据集和API服务数据集。Json数据集输入如下图所示&#xff1a; [{"到货日期":&qu…

工业智能网关在制造业数字化转型中的应用分享-天拓四方

随着工业4.0和物联网技术的飞速发展&#xff0c;工业智能网关已成为连接现场设备、实现数据采集与远程监控的关键节点。本文将以一个实际使用案例为蓝本&#xff0c;深入探讨工业智能网关的应用价值、技术特点以及实施效果&#xff0c;旨在为读者呈现一个清晰、专业且实操性强的…

vue项目打包问题

缓存导致打包后js文件404 修改vue.config.js打包输出文件名为动态&#xff0c;例如取当前时间戳。 在index.html文件添加meta标签设置不缓存。 更新完包&#xff0c;假如用户此刻正访问某一个页面时&#xff0c;访问的包还是原来的情况导致出现bug 解决VUE项目更新后需要客户手…

渲染引擎实践 - UnrealEngine引擎的 GLContext 创建过程

一:概述: 本文分析下 UnrealEngine 启动过程中创建多少个 OpenGL Context,以及每个 Context 的作用。 基于 UnrealEngine 4.25 环境。 二:临时Context 1. PreInit -> PreInitPreStartupScreen -> PreloadResolutionSettings, 用于检查图形窗口分辨率 2. PreInit -&…

Nmap——网络扫描的强大利器

一、引言 在网络安全和管理的领域中&#xff0c;了解网络的拓扑结构、设备状态以及开放的服务端口等信息至关重要。Nmap&#xff08;Network Mapper&#xff09;作为一款功能强大的网络扫描工具&#xff0c;为我们提供了深入探索网络的能力。本文将详细介绍 Nmap 的特点、功能…

三款新手剪辑软件分享,告别复杂的达芬奇剪辑软件

你们知道吗&#xff1f;一个视频能不能火&#xff0c;除了内容要够硬核&#xff0c;剪辑也是门大学问呢&#xff01;之前尝试过达芬奇剪辑&#xff0c;发现我不是很会用&#xff0c;然后最近我轮番上阵&#xff0c;试用了三款神器&#xff0c;来来来&#xff0c;让我给你们说说…

回归评价指标

这里写目录标题 1. 均方误差MSE2. 均方根误差RMSE3. 平均绝对误差MAE4. R^2^5. 调整后R^2^1. 均方误差MSE 回归数据和原始数据误差的平方和/原始数据个数平方的原因:不平方正负误差会抵消,对大误差更为敏感,在一些场景下更能凸显出模型预测的不准确性越接近于0,模型预测能力…

前端(三):Ajax

一、Ajax Asynchronous JavaScript And XML&#xff0c;简称Ajax&#xff0c;是异步的JavaScript和XML。 作用&#xff1a;数据交换&#xff0c;通过Ajax可以给服务器发送请求&#xff0c;并获取服务器响应的数据。异步交互&#xff1a;可以在不重新加载整个页面的情况下&…