zoukankan      html  css  js  c++  java
  • 从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么?

    从输入域名到网页打开的简单过程如下,还附加我自己的理解:

    1.DNS域名解析

      客户端输入域名后,由DNS服务器来将域名解析成对应服务器的IP地址

    2.建立TCP连接;

      获得服务器IP之后,就需要三次握手的协议才能建立连接
        1)客户端发送SYN包请求,等待服务器确认
        2)服务器确认收到SYN包请求后,同时自己也返回一个包给客户端,即返回SYN+ACK
        3)客户端收到SYN+ACK包之后,返回给服务器一个确认包ACK包表示收到,然后双方达成协议,建立连接

    3.发送HTTP请求;

      与服务器建立连接之后,就可以向服务器发送请求了,请求需要遵循http协议

    4.服务器处理请求;

      被请求的服务器解析用户请求的有哪些资源,通过服务器返回数据给客户端

    5.返回响应结果;

      给客户端返回请求的状态码,通过状态码可以知道服务器端的处理是否正常

      常见状态码:状态码
        100 Continue 继续,客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝
        200 OK 请求成功,表示正常状态
        301 Moved Permanently 请求的网页已永久移动到新位置。
        400 Bad Request 语义有误,当前请求无法被服务器理解。或者是请求参数有错误
        404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发现。多数情况是找不到输入域名对应的网页。   
        500 Internal Server Error 一般来说,这个问题都会在服务器端的源代码出现错误时出现。。  

    6.浏览器渲染:

      返回成功之后,浏览器拿到请求页面的代码,将其解析渲染出来。解析和渲染的过程主要由浏览器的渲染引擎实现

    7. 断开连接:

      数据传输完毕,需要断开tcp连接,此时tcp发起4次挥手

      1)客户端发送给服务器,告诉服务器需要关闭tcp了

      2)服务器发送给客户端,告诉客户端我准备一下就关闭

      3)服务器发送给客户端,告诉客户端我已经准备好关闭了

      4)客户端发送给服务器,告诉服务器我也准备好关闭了。

     

    我自己是用  "到外面吃饭" 这种方式来理解的:

    1. 比如我要到某某餐馆吃饭,我先在地图上搜 餐馆在哪里,然后通过导航 找到该餐馆(域名解析)

    2. 到达餐馆过后,我想我到底要吃什么(建立连接)

      1) 摸了摸口袋里的钱,发现只有两块钱,然后询问老板有没有两元的东西。(客户端发送包,等待服务器确认)

      2) 老板一看我的样子,就知道是个穷逼(服务器收到包),然后说只有馒头价格两元一个!(再返回一个包)

      3) 我欣喜若狂,掏出我压箱底的两元钱,告诉老板我要了(客户端返回一个包),老板表示蚊子再小也是肉,就接受了这个订单。我们快乐地达成了协议(达成协议)

    3. 老板给后厨说准备一个馒头(发送http请求)

    4. 后厨收到请求之后,开始准备馒头的材料(处理请求)

    5. 没过多久,我就拿到了热腾腾的馒头(返回响应结果)

    6. 拿到馒头之后我就开始了愉快的进食过程(渲染)

    7. 吃饱之后就离开餐馆:(断开连接)

      1)我对老板说:老板,结账,我准备走了

      2)老板对我说:稍等一下,马上就来

      3)老板又对我说:一共两元。

      4)我付了账,对老板说:这馒头真好吃,我下次再来。

    虽然上面的过程和真实的响应过程对应起来比较牵强,但是这能够帮助我理解什么时候是做什么事情,并不像原来一样全靠记忆。

  • 相关阅读:
    1208C Magic Grid
    jsc2019_qualE Card Collector
    jsc2019_qualD Classified
    jsc2019_qualC Cell Inversion
    牛客提高D6t3 分班问题
    牛客提高D6t2 破碎的序列
    牛客提高D6t1 积木大赛
    loj6259「CodePlus 2017 12 月赛」白金元首与独舞
    p4208 [JSOI2008]最小生成树计数
    p4111 [HEOI2015]小Z的房间[简述矩阵树定理]
  • 原文地址:https://www.cnblogs.com/zjjDaily/p/8302476.html
Copyright © 2011-2022 走看看