zoukankan      html  css  js  c++  java
  • 浏览器HTTP请求分析

    普通网民打开网页,访问网站,并不需要了解所谓HTTP协议。作为软件工程师,了解一下浏览器的工作过程还是一件比较有意思的事情。我向大家介绍一下当我们在浏览器的地址栏里面回车的时候,浏览器如何和Web服务器通信。

      DNS域名解析

      浏览器第一步做的是DNS域名解析。域名解析的主要作用是将域名转换成IP地址。例如www.sina.com.cn就是域名,202.108.33.81就是IP地址。Windows有个命令叫nslookup,就是域名解析命令。

      

      通过nslookup,我们发现新浪域名解析出好多IP地址,新浪Web网站规模大,所以Web服务器比较多,通过多台Web服务器解决负载问题。

      建立Socket连接

      第二步是和Web服务器建立Socket连接。Web服务器缺省是80端口。我们在地址栏里面输入http://www.sina.com.cn,浏览器连接202.108.33.81服务器的80端口。如果Web服务器不是80端口,例如8080端口,我们需要输入http://www.sina.com.cn:8080。

      HTTP请求和响应

      第三步是浏览器通过Socket向Web服务器发送HTTP请求,接收HTTP响应。HTTP协议比较复杂,下面是一个HTT请求的例子:

      Host:rss.sina.com.cn

      User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

      Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

      Accept-Language:zh-cn,zh;q=0.5

      Accept-Encoding:gzip,deflate

      Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7

      Keep-Alive:300

      Connection:keep-alive

      Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWSm3WRlEB3vRwTnRtW <-- Cookie

      If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT

      Cache-Control:max-age=0

      HTTP 响应消息头部实例:

      Status:OK - 200

      Date:Sun, 01 Jun 2008 12:35:47 GMT

      Server:Apache/2.0.61 (Unix)

      Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT

      Accept-Ranges:bytes

      Content-Length:18616

      Cache-Control:max-age=120

      Expires:Sun, 01 Jun 2008 12:37:47 GMT

      Content-Type:application/xml

      Age:2

      Connection:close

      下载网页文本内容

      第四步浏览器下载网页文本内容,网页文本中标记着图片、CSS文件和Flash等等。浏览器分析出这些内容后开4个线程对这些内容进行下载,显示在屏幕上。

  • 相关阅读:
    SpringBook+Lombok 使用教程
    SpringBoot + Swagger Demo
    SpringBoot+Mybatis_Plus Generator
    Ubuntu下创建apt源
    Mysql优化建议
    Zabbix批量添加Hosts
    批量安装Zabbix_Agent
    CentOS7安装Zabbix
    安卓开发中的各种进度条样式
    多点触控之MotionEvent.ACTION_MASK作用
  • 原文地址:https://www.cnblogs.com/huaxingtianxia/p/5700655.html
Copyright © 2011-2022 走看看