zoukankan      html  css  js  c++  java
  • [译]当你在浏览器输入url后发生了什么

    面试题会经常问这个,之前也被问过,回答的不是很好,后来看到百度前端的一篇博客,啰嗦了好多,很么触摸屏都上了。。后来看到stackoverflow上的一个回答,比较短。

    原文地址:http://stackoverflow.com/questions/2092527/what-happens-when-you-type-in-a-url-in-browser

    下面的讲解很粗糙也很简单,我们假设最简单的HTTP请求,没有代理也没有IPv4(纯IPv6客户端的工作原理应该类似,但我还没见过这样的工作站)。

    1. 浏览器器检查cache,如果请求对象已经缓存并且是最新的,执行第9步。
    2. 浏览器询问操作系统,请求服务器的IP地址
    3. 操作系统进行DNS查找,然后告诉浏览器服务器的IP
    4. 浏览器和服务器简历一个TCP连接(如果是HTTPS协议更加复杂)
    5. 浏览器通过TCP连接发送HTTP请求
    6. 浏览器接收HTTP响应,或许关闭TCP连接,或许用于其他请求。
    7. 浏览器检查这次响应是否重定向(3XX 状态码),或是一次授权请求(401),错误请求(4XX 和 5XX)等等;这些和正常响应(2XX)的处理有所不同。
    8. 如果可以缓存,响应被缓存
    9. 浏览器对响应解码。(比如gzipped)
    10. 浏览器确定如何让应对响应。(比如HTML页面、图像或者声音。。)
    11. 浏览器渲染响应,或者为无法识别的格式类型提供下载。

    再说一次,讨论以上任何一点都得写好几页纸,将上述作为一个起点。同时,在以上动作发生时许多处理也在同时进行(处理输入地址、增加浏览器历史记录、展示进度、通知插件和扩展、边下载边渲染页面等等)。

    相关文章:what-happens-when-zh_CN,大致是对以上的详解。

  • 相关阅读:
    linux 中的vim的配置文件的位置
    centos find
    multi-cursor
    ctrlsf插件
    Vim的可视模式
    Vim的tagbar插件
    Vim的tag系统
    ~/.ctag的作用与配置
    在Vim里使用gtags-cscope
    查看Vim的option变量的值
  • 原文地址:https://www.cnblogs.com/zjzhome/p/4439930.html
Copyright © 2011-2022 走看看