zoukankan      html  css  js  c++  java
  • HTTP、TCP/IP协议的原理及应用

    访问网页时发生了什么

    当用户在浏览器地址栏输入地址,敲下回车键,直到看到网页界面,一般事件不过两三秒左右。然而在这瞬间时间,计算机实际上已经完成了非常复杂的操作。这段过程中发生的事情,其实有很大一部分就与HTTP TCP/IP有关,我们可以简要的概括一下大概的流程

    一、找服务器IP

    当用户输入一个网址并按下回车键的时候,浏览器得到了一个域名。而在实际通信过程中,浏览器需要的是一个IP地址。为了获得IP地址,浏览器会做如下操作,一般我们把浏览器通过域名查找对应IP的行为叫做DNS(域名系统Domain [də(ʊ)'meɪn] Name System,是互联网的一项服务)解析

    1.找浏览器的本地的缓存

    2.再找电脑硬盘里的host文件,有么有记录这个域名和IP的映射关系

    3.实在没找到,只好通过网络链路去域名供应商那里查询

    二、建立TCP/IP连接

    1.浏览器获取到了服务器对应的IP,就会向对应的IP服务器发送TCP(Transmission Control Protocol 传输控制协议)连接请求

    2.服务器收到请求后回应,双方多次确认后建立TCP双向连接。

    从客户端发起连接请求一直到TCP连接建立,这个过程,叫做三次握手

    如果请求时HTTPS的,还需要再TCP连接上,再通过SSL或TLS提供的加密处理数据、验证对方身份以及数据完整性,来保证数据传输的安全

    三、请求资源

    1.TCP连接创建完成,浏览器开始向服务器发送正式的HTTP请求的数据包

    2.服务端接受请求,对请求进行解析,经过数据操作后,返回客户端需要的数据包

    四、浏览器渲染

    浏览器获取到需要的数据以后,对数据进行拼接、解析、执行,最终将完整的网页绘制在网页上。

    五、浏览器缓存

    浏览器拿到服务器返回的数据后,会根据一定的策略进行数据缓存,这样在下一次请求同样数据的时候,就可以直接到缓存拿取,不再请求服务器。

    https://juejin.im/post/5d75c116f265da03d9255dd1

  • 相关阅读:
    Google官方关于Android架构中MVP模式的示例续-DataBinding
    值不值
    [译]Godot系列教程五
    [译]Google官方关于Android架构中MVP模式的示例
    遭遇Web print
    如何寻找有价值的点
    充电时间 Go中的数组、切片、map简单示例
    一段良好的程序永远不应该发生panic异常
    居然是Firefox没有抛弃我们
    macOS 升级到了10.12.1
  • 原文地址:https://www.cnblogs.com/wangxirui/p/11492757.html
Copyright © 2011-2022 走看看