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

如何发起一个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),然后再次发起请求

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 非常好的文章,怕博主删除,再也找不到这么好的文章了,所以复制了一份,博主是2016年写,但是是到现在为止看到的,思...
    吭声_cfdc阅读 6,130评论 0 4
  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 20,043评论 6 120
  • “DNS”这个单字,想必那些经常使用计算机,尤其是经常手动配置IP和DNS服务器的人是非常熟悉的。也许其中的大部...
    Ulrich蚊子阅读 7,727评论 0 6
  • 我家表侄侯留兵, 十年寒窗成了功。 南方工作六七载, 领回香港女花容。 今日结婚成大礼, 表弟弟妹喜盈盈。 姨母九...
    韩翔阅读 2,256评论 2 2
  • MySQL使用SELECT语句的WHERE子句指定搜索条件。 使用WHERE子句 数据库表一般包含大量的数据,有时...
    gyl_coder阅读 5,182评论 0 1

友情链接更多精彩内容