| |
|
开发:
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地址显示主?的过程 |
URL(统一资源定位符)组成:传输协议、服务器的域名、端口、虚拟目录、文件名、锚点、参数 浏览器对输入的URL首先会进行识别,抽取出域名字段,例如: baidu.com,然后需要对域名进行解析,即DNS解析。 1、DNS解析如果输入ip地址表示直接从主机上调用内容,输入域名,是通过域名解析服务器指向对应主机的IP地址,再从主机上调用网址的内容,DNS解析时,主要会经过一下内容:
2、建立TCP三次握手https://blog.csdn.net/an760998254/article/details/119063658?spm=1001.2014.3001.5501 3、发送HTTP请求HTTP请求报文是由三部分组成: 请求行, 请求报头和请求正文。常用的请求方法有: GET、POST、PUT、DELETE、OPTIONS、HEAD 3.1、http协议的流程?
3.2、HTTP状态码301:永久重定向 302:临时重定向 400:语法错误 401:表示需要认证 403:表示请求被拒绝 404:没发现资源 500:服务器内部出现故障 3.3、GET和POST区别Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。 区别数据样式:
参数类型;GET只接受ASCII字符,而POST没有限制。 GET请求参数会被完整保留在浏览器历史记录里;相反,POST请求参数也不会被浏览器保留。 数据大小:
安全性POST的安全性要比GET的安全性高,安全:可查看数据,但是不可修改,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码。但是总的来说,不管是put还是get都是不算安全的,因为HTTP是明文传输。 Get、Post请求发送的数据包有什么不同吗?GET是一个包将Header 和 body 同时发送过去,POST 是先发送head ,再发送body,分两个包发送。 就像是GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼 3.4、响应头信息cookie和session的区别Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。 Cookie ?来保存?户信息,是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。 Session是服务器端技术, session 对象存储特定用户会话所需的属性及配置信息。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。 区别:存取方式:cookie只能存储ASCII码字符串,而Session可以存储任何类型的数据 安全性:cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗, 考虑到安全应当使用session。 浏览器支持不同:当客户端禁用cookie时无法使用cookie,此时需要运用Session以及URL地址的重写。 3.5、HTTP 1.0和HTTP 1.1 、HTTP 2.0区别HTTP 1.0和HTTP 1.1区别:长连接、短连接HTTP1.0默认的是短连接,该连接就是客户端和服务器没进行一次HTTP操作,就会建立一次连接,任务结束之后,就会断开连接。 HTTP1.1默认的是长连接,使用长连接时,会在HTTP的响应头加入:
在长链接下:建立一次TCP连接后进行多次请求和响应的交互。 缓存处理HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。 HOST域
HTTP2.0二进制编码HTTP2.0时代将 HTTP/1 的文本格式改成二进制格式传输数据,极大提高了 HTTP 传输效率,而且二进制数据使用位运算能高效解析。 header压缩HTTP/2 没使用常见的 gzip 压缩方式来压缩头部,而是开发了 HPACK算法,HPACK 算法主要包含三个组成部分:
多路复用分侦HTTP/1.1 的实现是基于请求-响应模型的。同一个连接中,HTTP 完成一个事务(请求与响应),才能处理下一个事务,也就是说在发出请求等待响应的过程中,是没办法做其他事情的,如果响应迟迟不来,那么后续的请求是无法发送的,也造成了队头阻塞的问题。 而 HTTP/2通过 Stream 这个设计,多个 Stream 复用一条 TCP 连接,达到并发的效果,解决了 HTTP/1.1 队头阻塞的问题,提高了 HTTP 传输的吞吐量。 服务端主动发送可以在用户请求 html 时,可以主动的推送 css 资源,一次请求,多次发送。 4、服务端相应HTTP请求5、浏览器解析渲染页面5.1、浏览器在接收到HTML,CSS,JS文件后,如何把页面呈现在屏幕上?浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。 JS的解析是由浏览器中的JS解析引擎完成的。JS是单线程运行,也就是说,在同一个时间内只能做一件事,所有的任务都需要排队,前一个任务结束,后一个任务才能开始。这时需要一种机制可以先执行排在后面的任务,这就是:同步任务(synchronous)和异步任务(asynchronous),JS的执行机制就可以看做是一个主线程加上一个任务队列(task queue)。同步任务就是放在主线程上执行的任务,异步任务是放在任务队列中的任务。所有的同步任务在主线程上执行,形成一个执行栈;异步任务有了运行结果就会在任务队列中放置一个事件;脚本运行时先依次运行执行栈,然后会从任务队列里提取事件,运行任务队列中的任务,这个过程是不断重复的,所以又叫做事件循环(Event loop)。 浏览器在解析过程中,如果遇到请求外部资源时,如图像,iconfont,JS等。浏览器将重复1-6过程下载该资源。请求过程是异步的,并不会影响HTML文档进行加载,但是当文档加载过程中遇到JS文件,HTML文档会挂起渲染过程,不仅要等到文档中JS文件加载完毕还要等待解析执行完毕,才会继续HTML的渲染过程。原因是因为JS有可能修改DOM结构,这就意味着JS执行完成前,后续所有资源的下载是没有必要的,这就是JS阻塞后续资源下载的根本原因。CSS文件的加载不影响JS文件的加载,但是却影响JS文件的执行。JS代码执行前浏览器必须保证CSS文件已经下载并加载完毕。 6、连接结束(TCP四次挥手)TCP和UDP区别:TCP:TCP是可靠的,面向连接的传输方式,TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资。 缺点: 效率低,占用资源多,在传递数据的时候,需要建立连接,会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间。因为每个连接都会占用系统的CPU、内存等硬件资源。因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。 UDP:UDP是不可靠的,无连接的传输方式,但是传输方式快,效率高,因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。 应用:
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 7:44:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |