美文网首页
完整URL理解以及HTTP请求和响应

完整URL理解以及HTTP请求和响应

作者: 空压机百科 | 来源:发表于2020-03-26 17:23 被阅读0次

    浏览器输入网址中间经历的过程:
    【HTTP请求阶段:向服务器发送请求】
    1、浏览器首先向 DNS 域名解析服务器发送请求
    2、DNS 反解析:根据浏览器请求地址中的域名,到 DNS 服务器中找到对应的服务器外网 IP 地址
    3、通过外网 IP 向对应服务器发送请求(首先访问的服务器 Web 站点管理工具,准确来说先基于工具在服务器上面创建很多服务,当有客户访问的时候,服务器会匹配出具体是请求哪个服务 )
    4、通过 URL 中携带的端口号找到服务器上对应的服务,以及服务所管理的项目源文件

    【HTTP相应阶段:服务端把客户端需要的内容准备好,并且响应给客户】
    5、服务器端根据请求地址中路径名称,问号传参或者哈希值,把客户端需要的内容进行准备和处理
    6、把准备的内容响应给客户端(如果请求的是 html 或 css 等这样的资源文件,服务器返回的是资源文件中的源代码[不是文件本身])

    【浏览器渲染阶段】
    7、客户端浏览器接收到服务器返回代码,基于自己渲染引擎开始进行绘制和渲染
        a、首先计算 DOM 结构,生成 DOM TREE
        b、自上而下运行代码,加载 CSS 等资源内容
        c、根据获取的 CSS 生成带样式的 RENDER TREE
        d、开始渲染
    一次完整的请求 + 响应 称之为“HTTP事务”,两者缺一不可
    一个页面完全加载完成,需要向服务器发起很多次HTTP事务操作。一般情况:首先把HTML源代码拿回来,加载HTML时,遇到 link / script / img[src] / iframe / video / audio 都会重新和服务器端建立 HTTP 事务交互。特殊情况:如果做了资源缓存处理(304),而且即将加载的资源在之前已经加载过,这样的操作和传统的HTTP事务不一样,是从服务器和浏览器缓存中读取数据。
    HTTP报文:客户端向服务端发送请求,以及服务器把内容响应给客户端的时候,中间相互传了很多内容,传递的内容统称为“HTTP报文”

    一个URL的组成
    URI = URL + URN
    URI:统一资源标识符
    URL:统一资源定位符
    URN:统一资源名称
    http://www.yyhvr.cn/vr17.php
    【传输协议】
    用来传输客户端和服务端交互信息
    HTTP:超文本传输协议(普通文本,文件流,进制编码等)端口号80
    HTTPS:基于SSL加密的HTTP传输协议,比HTTP更安全(一般涉及支付都基于HTTPS完成)端口号443
    FTP:文件传输协议,一般用来实现资源文件在服务器的上传下载,端口号21
    【域名】
    一级域名(顶级域名)www.qq.com
    二级域名 sports.qq.com  ....
    【端口号】
    用域区分同一台服务器上不同服务标识(基于 Web 服务管理创建服务的时候创建,不同服务之间一般不能使用相同端口号),当网站采用协议对应的默认端口号,用户输入网址可以不指定端口号,浏览器会把默认端口传递给服务器
    一台服务器端口号范围0-65535
    【请求路径名称】
    一般都是请求当前服务对应项目目录中,特殊情况会采用“伪URL重写”,看到的URL请求不是真实请求
    【问号传参及哈希值】
    ?xxx=xxx#xxx
    在HTTP事务中,?传参是客户端把信息传递给服务器的一种方式,也可能是跳转到某一个页面,把参数值传递给页面用来标识的
    哈希值一般跟客户端服务端交互没关系,主要用于页面中锚点定位和HASH路由切换

    HTTP报文:
    客户端向服务端发送请求,以及服务器把内容响应给客户端的时候,中间相互传了很多内容,传递的内容统称为“HTTP报文”
    起始行:请求起始行,响应起始行
    首部(头): 请求头、响应头、通用头
    主体:请求主题、响应主体
    Gemeral 通用头
    Request URL: 请求地址
    Request Method:请求方式(get / post / delete / put / head / option)
    Status Code:响应的 HTTP 状态码
    Remote Address:主机地址(服务器外网 IP 地址)
    Referrer Policy:推荐人
    Request Headers 请求头 客户端设置服务端接收
    Response Headers 响应头 服务器端设置,客户端获取
    HTTP/1.1 200 OK 响应起始行
    Date: Thu, 26 Mar 2020 08:19:55 GMT 服务器响应内容时候的“服务器端时间”
    Server: Apache 管理 web 服务工具
    Response 响应主体,服务器返回的是什么就是什么
    Request Payload / Form Data 请求主体,客户端传递给服务器内容

    客户端和服务器端信息交互的方式:
    客户端窗体给服务器:
        问号传参,请求的 URL 地址末尾通过问号传参方式,把一些信息传递给服务器
        设置请求头,客户端把需要传递给服务器的内容设置到请求头信息中,服务器可以通过接受请求头信息把内容得到
        设置请求主体,xhr.send(Ajax send 中传递内容就是客户端设置的请求主体内容)
    服务器返回给客户端:
        设置响应头信息,客户端获取响应头信息,响应头返回速度优先于响应主体
        设置响应主体,主要返回信息都在响应主体中

    相关文章

      网友评论

          本文标题:完整URL理解以及HTTP请求和响应

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