网页请求原理
学习目标
- 熟悉浏览器加载网页的过程
- 掌握基于HTTP协议的请求原理,能够理解HTTP请求和响应格式
- 熟悉Fiddler抓包工具,会使用Fiddler捕获浏览器的会话
浏览网页的过程
- 浏览器通过DNS服务器查找域名对应的IP地址
- 向IP地址对应的Web服务器发送请求
- web服务器响应请求,发回HTML页面
- 浏览器解析HTML内容,并显示出来
拓展一
URL
统一资源定位符(Uniform Resource Locator,URL)是互联网上标准资源的地址,互联网的每一个文件/资源都有唯一的URL,它包含了文件的位置及浏览器处理方式等信息。
URL地址由协议头、服务器地址、文件路径三部分组成。
URL常见协议
- file &访问本地计算机资源
- ftp 访问共享主机的文件资源
- http 超文本传输协议,访问远程网络资源
- https 加密的http协议
- mailto 访问电子邮箱地址
DNS
DNS是计算机域名系统的缩写,它可以把域名转化为对应的IP地址。
HTTP网络请求原理
HTTP请求包括GET和POST两种方式。
- 请求行
GET https://www.baidu.com/ HTTP/1.1
GET是请求方法,https://www.baidu.com/是地址,HTTP/1.1代表协议版本
GET和POST方法的区别
- GET是从服务器上获取制定页面信息,POST是向服务器提交数据并获取页面信息
- GET请求参数都显示在URL上,服务器根据该请求所包含URL中的参数来产生响应内容。但是由于请求参数都暴露在外,所以安全性不高。
- POST请求参数在请求体中,消息长度没有限制且采取隐式发送,通常用来向HTTP服务器提交量比较大的数据。POST请求的参数不在URL中,而在请求体中,在安全性方面,比GET高。
- 请求报头
请求行是若干个请求报头
服务端HTTP响应格式
HTTP响应报文由四部分组成,分别是状态行、响应报头、空行和响应正文。
响应状态码
- 100-199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
- 200-299:表示已成功接收请求并已完成整个处理过程。200表示OK
- 300-399:为请求完成,客户进一步细化请求。
- 400-499:客户端请求有误。404表示服务器无法找到被请求的页面,403表示服务器拒绝访问,权限不够
- 500-599:服务器端出现错误。
HTTP的抓包工具Fiddler
Fiddler是一款强大的Web调试工具,他能记录所有客户端和服务器的HTTP请求和响应,还能模拟HTTP请求的发送
它的具体功能体现在:
- 可以监控HTTP和HTTPS的流量,截获客户端发送的网络请求
- 可以查看截获请求的内容
- 可以伪造客户端请求发送给服务器,也可以伪造一个服务器的响应发送给客户端
- 可以用于测试网站的性能
- 可以解密HTTPS的Web会话
- Fiddler提供的第三方插件,可以大幅提高工作效率