• 经典问题 一个网址输入到返回页面的全过程


     一个网址输入到返回页面的全过程

    主要是这八步:

    1、浏览器输入网址,根据域名,进行DNS域名解析

    2、拿到解析分IP地址,跟服务器简历TCP连接

    3、向IP地址发送HTTP请求

    4、服务器处理请求

    5、服务器返回响应结果,指定URL数据,错误信息,如果被重定向,则重定到新的 URL地址

    6、(关闭TCP连接)

    7、浏览器解析下载的源文件

    8、解析排版页面,在浏览器中显示基础页面,布局渲染

    1、一个 TCP 连接可以对应几个 HTTP 请求?

    (HTTP1.0和1.1的区别)

    默认情况下建立TCP连接不会断开,只有在请求头中声明connection:close,才会在请求后关闭

    (HTTP1.0前浏览器支持,HTTP1.1后标准默认开启:connection:keep-live)

    1.1、一个TCP连接可以对应几个HTTP请求

    如果维持连接,一个TCP连接可以发送多个HTTP请求

    1.2、为什么有时刷新页面,不需要重新建立SSL连接

    TCP连接有时候会被浏览器和服务端维持一段时间

    2、一个 TCP 连接中 HTTP 请求发送可以一起发送么

    (HTTP2.0和HTTP1.1协议的区别)

    在HTTP1.1存在Pipelining技术可以完成多个请求同时发送,但是浏览器默认关闭,所以可以认为是不可行的

    提高页面效率的办法

    • 维持和服务器已经建立的TCP连接,在同一连接上顺序处理多个请求
    • 和服务器建立多个TCP连接

    在HTTP2中由于Multiplexing特点的存在,多个HTTP请求可以在同一TCP连接中并行.

    3、浏览器对同一Host建立TCP连接到数量有没有限制?

    有限制,Chrome最多允许对同一个Host建立6个TCP连接,不同浏览器有区别

    收到的HTML如果包含几十个图片标签,这些图片是以什么方式,什么顺序建立多少连接,使用什么协议被下载下来?

    如果图片都是以HTTPS连接并且在同一个域名下,那么浏览器在SSL握手后会和服务器请求用HTTPS

    如果能,使用Multiplexing功能在连接上进行多路传输。未必会所有挂在这个域名的资源都使用一个TCP去获取。但是可以确定的是Multiplexing可能会被用到

    如果用不了HTTP2或用不了HTTPS,那浏览器就会在一个HOST上建立多个TCP连接,数量最大限制取决于浏览器设置。这些连接会在空闲时被浏览器用来发送新的请求,如果所有连接正在发送请求,就只能等。

  • 相关阅读:
    WebService安全机制的思考与实践
    Typora
    谷歌隐藏功能开启
    在Idea中jdk11和jdk8环境变量的切换
    win10安装两个不同版本的mysql(mysql5.7和mysql8.0.19)
    Guava中这些Map的骚操作,让我的代码量减少了50%
    MySQL TransactionMySQL锁升级引发的死锁问题
    mac 在 home 目录下创建文件夹
    忍者系统
    DNS服务简介和配置详解
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13899965.html
Copyright © 2020-2023  润新知