一、web请求

BS架构(Browser/Server)

  1. 客户端使用统一的浏览器(Browser)
  2. 服务端(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:WindowsSystem32driversetchosts中
3、一般解析过程在LDNS就结束了
4、DNS根服务器,如果坏掉了就完蛋了

CDN工作机制

CDN就是内容分布式网络,一般存放静态资源,缓解服务器压力
会有负载均衡服务器调度使最优的服务器给用户返回数据。

原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232607.html