浏览器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个线程对这些内容进行下载,显示在屏幕上。

两台三相异步电动机交替工作控制电路接线图
代码质量:需求可追溯性同样重要
FDMA1024NZ 有效延长电池寿命的MicroFET M
华为荣耀Note9什么时候上市?荣耀Note9最新消息:荣耀V9、荣耀9开胃菜,荣耀Note9放大招?
余承东发话:华为P10双版本春季发布,麒麟965+莱卡双摄
浏览器HTTP请求分析
PLC网关采集西门子S7-1200对接MQTT服务器的操作步骤详解
4G技术的三大关键技术进行探讨及其实际应用面临的挑战分析
当颜值遇上配置:荣耀8青春版,荣耀V9和华为P10,该如何选择?
紫光国微旗下国芯晶源获评2023年“国家知识产权优势企业”
GPS防盗器的常见性能对比及选择注意事项
从芯片到测试,详细解析Type-C 产业链全部细节
细说GNSS模拟器的RTK功能(二)应用实例01 — 硬件和软件设置
大幅面扫描仪的扫描速度
d型空气开关和c型空气开关的区别
dfrobot树莓派UPS电源扩展板简介
智能门禁电源的注意事项你都知道吗!
日本对韩限贸后首次批准向韩国出口半导体制造材料
Free RTOS的互斥信号量
什么是步进电机?步进电机的种类