美文网首页
游览器发起一次HTTP请求到网站呈现在游览器界面都发生了些什么?

游览器发起一次HTTP请求到网站呈现在游览器界面都发生了些什么?

作者: elkelk | 来源:发表于2016-09-28 16:23 被阅读192次

    [参考原文] [1] [参考译文] [2]
    [1]: http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/
    [2]: http://blog.csdn.net/wuhenliushui/article/details/20038819


    1.输入网址

    在游览器输入一个网址,游览器会根据你的网址找到对应的IP地址,域名到IP地址的转换是通过DNS服务器,游览器缓存,系统缓存一般会记录域名对应的IP地地址段时间,详细可以查看参考文章。


    2. 游览器和服务器建立一个TCP连接

    TCPTransfer Control Protocol,采用三次握手建立一个连接

    第一次握手:主机发送位码为syn=1,生成随机数seq number=RanNum的数据包到服务器,服务器由syn=1知道主机要求建立连接。
    第二次握手:服务器发送ack number=RanNum+1,syn=1,ack=1,生成随机数seq=RanNumServer的包
    第三次握手:主机收到ack number后确认其是否正确以及位码是否为1,若满足,再发送ack number=RanNumServer+1,ack=1到服务器,服务器确认ack number和ack=1后完成三次握手。


    3. 游览器给web服务器发送一个HTTP请求

    HTTPHyper Text Transfer Protocol(超文本传输协议)的缩写,用于从万维网服务器传输超文本到本地游览器的传送协议,是基于TCP/IP通信协议来传递数据的。
    那么一个HTTP请求都包含哪些信息呢?
    首先是请求方法,比如GET POST等,然后是请求URL,还有HTTP协议的版本,这三部分归为请求行。
    然后是请求头部,这部分是以KEY:VALUE的形式存在于请求消息中的,根据需要有许多请求头部可以选择。
    再后面就是cookie,游览器保存了用户和网站之间联系的信息就是通过cookie

    HTTP请求方法:
    HTTP1.0定义了三种请求方法:GET, POSTHEAD方法。
    HTTP1.1新增了五种请求方法:OPTIONSPUT, DELETETRACECONNECT方法。


    GET 请求指定的页面信息,并返回实体主体。HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    PUT 从客户端向服务器传送的数据取代指定的文档的内容。
    DELETE 请求服务器删除指定的页面。
    CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    OPTIONS 允许客户端查看服务器的性能。
    TRACE 回显服务器收到的请求,主要用于测试或诊断。


    4. 服务器响应HTTP请求

    服务器响应包含状态行,响应头和相应正文,状态行包含了HTTP协议版本,状态码。响应头和请求头类似,内容是关于本次响应的一些信息。
    然后就是响应正文了,基于是图片,文件或者页面等。


    5. 游览器显示响应正文

    这里就是用户在游览器看到的网站页面了。

    相关文章

      网友评论

          本文标题:游览器发起一次HTTP请求到网站呈现在游览器界面都发生了些什么?

          本文链接:https://www.haomeiwen.com/subject/qoghyttx.html