一、web请求
BS架构(Browser/Server)
- 客户端使用统一的浏览器(Browser)
- 服务端(Server)基于统一的HTTP协议
流程:用户浏览器输入URL地址–》DNS域名解析出IP地址–》向找到的服务器发送一个get请求–》服务器返回数据资源
HTTP解析
请求头 | 说明 |
---|---|
Accept-Charset | 用于指定客户端接收的字符集 |
Accept-Encoding | 用于指定可接受的内容编码,如Accept-Encoding:deflate |
Accept-Language | 用于指定一种自然语言,如Accept-Language:zh-cn |
Host | 用于指定被请求资源的Internet主机和端口号,如:Host:www.taobao.com |
User-Agent | 客户端将它的操作系统、浏览器和其他属性告诉服务器 |
Connection | 当前连接是否保存,如Connention-Keep-Active |
响应头 | 说明 |
---|---|
Server | 使用的服务器名称,如Server:Apache/1.3.6(Unix) |
Connect-type | 用于指定发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset-GBK |
Connect-Encoding | 与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码 |
Connect-Language | 描述了资源所用的自然语言,与Accept-Language对应 |
Connect-Length | 指明实体正文的长度,用以字节方式存储的十进制数字来表示 |
Keep-Active | 保持连接的时间,如Keep-Alive: timeout-5, max=120 |
状态码 | 说明 |
---|---|
200 | 客户端请求成功 |
302 | 临时跳转,跳转的地址通过Location指定 |
400 | 客户端请求有语法错误,不能被服务器识别 |
403 | 服务器收到请求,但是拒绝提供服务 |
404 | 请求的资源不存在 |
500 | 服务器发生不可预期的错误 |
浏览器缓存
1、浏览器内部缓存
2、缓存服务器的缓存
缓存可能会使数据异常
Ctrl+F5获取最新数据,不访问浏览器缓存,也不访问缓存服务器的缓存
实现:两种方式(实现Ctrl+F5效果)请求头中添加
Pragma:no-cach
Cache-Control:no-cach
3、Expires设置缓存失效时间
4、Last-Modified表示一个服务器上资源的最后修改时间
DNS域名解析
通过域名是无法直接访问远程主机的,域名需要解析成IP地址才可以与远程主机建立连接
大体步骤:
1.检查浏览器缓存–>2.检查计算机本地缓存–>3.检查LDNS(Local DNS Server)–>4.访问根服务器
1、浏览器缓存存在大小时间的限制,一般几分钟到几小时不等
2、计算机本地缓存在C:\Windows\System32\drivers\etc\hosts中
3、一般解析过程在LDNS就结束了
4、DNS根服务器,如果坏掉了就完蛋了
CDN工作机制
CDN就是内容分布式网络,一般存放静态资源,缓解服务器压力
会有负载均衡服务器调度使最优的服务器给用户返回数据。