zoukankan      html  css  js  c++  java
  • 经典问题 一个网址输入到返回页面的全过程

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

    主要是这八步:

    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连接,数量最大限制取决于浏览器设置。这些连接会在空闲时被浏览器用来发送新的请求,如果所有连接正在发送请求,就只能等。

  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13899965.html
Copyright © 2011-2022 走看看