美文网首页
深入分析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

    ref: 深入分析Java Web技术内幕 总结:Spring事务配置 Ch 1 深入Web请求过程 CDNCon...

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

    如何发起一个htpp请求 简单的说,发起一个HTTP请求的过程就是建立一个Socket通信的过程,且HTTP请求的...

  • java class文件结构

    (<深入分析Java Web技术内幕>笔记)java语言在宣传时打出的名号就是"一次编译,到处运行", 也就是支持...

  • javac编译原理

    第二章 Javac编译原理 注:本文主要记录自《深入分析java web技术内幕》"第四章 javac编译原理" ...

  • 深入分析java web技术内幕

    此书时候闲暇时间阅读,或者寻求技术难题解决方案的时候阅读。 但是直接I/O有负面影响,如果访问的数据不在应用程序缓...

  • JavaWeb笔记之——Web请求过程

    本文总结自《深入分析Java Web技术内幕》一书。全篇内容大致先从一个面试经常问及的问题说起,然后再介绍各个主要...

  • GET请求中中文乱码的解决

    GET请求中的乱码原理解析和解决方案 《深入分析javaweb技术内幕》第三章 web应用中浏览器与服务端的编码和...

  • 深入分析JAVA_WEB技术内幕

    第一章 深入WEB请求过程 1.1 B/S网络架构概述 1.2 如何发起一个请求 1.3 HTTP解析 常见的HT...

  • 深入分析JAVA WEB技术内幕(二)

    JAVA NIO概述 NIO的工作机制 channel和selector的概念在NIO中尤为突出。channel可...

  • 深入分析JAVA WEB技术内幕(一)

    B/S架构概述 1. B/S架构简化了开发人员的开发成本,前后端依靠HTTP协议进行数据交换,以达到业务目标。 2...

网友评论

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

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