美文网首页
深入分析java Web技术内幕 - web请求(1)

深入分析java Web技术内幕 - web请求(1)

作者: attentionYSF | 来源:发表于2019-08-09 17:22 被阅读0次

    如何发起一个htpp请求

    简单的说,发起一个HTTP请求的过程就是建立一个Socket通信的过程,且HTTP请求的数据格式要符合htpp协议的规定。

    了解http协议中的header

    列举几个常见的属性,详见 developer.mozilla - HTTP Headers

    请求头 Request Header 说明
    Accept-Charset 用于指定客户端接受的字符集
    Accept-Encoding 可接受的内容编码
    Accept-Language 自然语言 比如zh-cn
    Host 指定被请求资源的Internet主机和端口号
    User-Agent 客户端将它的操作系统、浏览器和其他属性告诉服务器
    Connection 当前连接是否保持
    Referer 首部包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 首部识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等
    Pragma no-cache
    Cache-Control no-cache

    ctrl + F5 强制页面刷新,会在请求头中增加这两个参数,或者改变参数值为no-cache。此外,还有一种前端编程请求解决缓存的方法,在ajax请求中加入时间戳,保证每次请求的URL和参数不一致,避免了浏览器检测到相同的请求,从而使用缓存数据

    响应头Request Header 说明
    Server 使用的服务器名称
    Content-type 指明发送给接受者的实体正文的媒体类型,如Content_Type:text/html;charset = GBK
    Content-Encoding 告诉浏览器服务端采用的压缩编码
    Content-Language 描述了资源所用的自然语言
    Content-Length 指明实体正文的长度
    Keep-Alive 保持连接的时间

    HTTP请求过程

    简要介绍用户在浏览器输入网址之后看到页面的过程

    1. 用户输入网址即URLwww.jianshu.com

    2. DNS将域名解析成IP地址

      • 浏览器从浏览器的缓存中查找解析过的域名对应的IP,如果找到,直接返回IP地址,后续步骤不执行

      • 如果浏览器缓存中未找到,则从浏览器所安装在的终端(PC电脑)缓存中寻找,windows操作系统C:\Windows\System32\drivers\etc\hosts文件中,可配置域名与对应的IP地址,如果找到,直接返回IP地址,后续步骤不执行

      • 见网络3D结构图


        DNS解析过程图.png

        名词解释
        Local DNS Server:本地域名解析服务器,比如说,学校的网络,会在学校有一台域名解析服务器;家庭网络,运营商(电信、联通)会有域名解析服务器
        Root DNS Server:顶级域名服务器,全球只有13台,大部分在美国
        gTLD Servr:国际顶尖域名服务器,如.com .cn .org等
        Name Server:域名直接注册的地方,比如阿里云腾讯云域名注册

    3. 用户浏览器根据IP地址向服务器发起请求

    4. 服务器端发回请求响应数据给浏览器

    5. 数据返回后,浏览器解析数据发现还有一些静态的资源(css,js,img),然后再次发起请求

    相关文章

      网友评论

          本文标题:深入分析java Web技术内幕 - web请求(1)

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