深入web请求过程
HTTP解析
常见的HTTP请求头
请求头 | 说明 |
---|---|
Accept-Charset | 用于制定客户端接受的字符集 |
Accept-Encoding | 用于制定可接受的内容编码,如Accpet-Encoding:gzip。deflate |
Accept-Language | 用于指定一种自然语言,如:Acept-Language-Zh-cn |
Host | 用于制定被请求资源的Internet主机和端口号,如:Host:www.taobao.com |
User-Agent | 客户端将它的操作系统、浏览器和其他属性告诉服务器 |
Connection | 当前连接是否保持,如Connection:Kepp-Alive |
常见的HTTP响应头
响应头 | 说明 |
---|---|
Server | 使用服务器名称,如Server:Apache、1.3.6(Unix) |
Content-Type | 用来指说明发送给接受者的实体正文的媒体类型,如Contnet-Type:text/html;charset=GBK |
Content-Language | 描述了资源所用的自然语言,与Accept-Language对应 |
Content-Length | 指明实体正文的长度,用以字节方式存储的十进制数字来表示 |
Keep-Alive | 保持连接的时间,如Keep-Alive:timeout=5,max=120 |
常见的HTTP状态吗
状态码 | 说明 |
---|---|
200 | 客户端请求成功 |
302 | 临时跳转,跳转的地址通过Location制定 |
400 | 客户端请求有语法错误,不能被服务器识别 |
403 | 服务器收到请求,但是拒绝提供服务 |
404 | 请求的资源不存在 |
500 | 服务器发生不可预期的错误 |
清楚缓存的域名
使用 ipconfig/flush来清楚缓存域名
几种域名解析方式
A记录:域名对应IP地址
MX记录:将某个域名下的邮件服务器指向自己的MAIL Server
CNAME记录:全程 Canonical Name(别名解析)。为一个域名设置一个或多个别名。
NS记录:为某个域名制定DNS解析服务器。
TXT记录:为某个主机名或域名设置说明。
CDN 内容分布网络
用户可以就近取得所需的内容,提高用户访问网站的响应速度。比镜像更智能,可以比喻为:镜像(Mirror)+缓存(Cache)+整体负载均衡(GSLB),目前CDN都以缓存网站中的静态数据为主。CDN达到以下目标:可扩展、安全性、可靠性
负载均衡(Load Balance)
对工作进行平衡、分摊到多个操作单元上执行,如图片服务器、应用服务器等,共同完成工作任务。提高服务器响应速度及利用效率,避免软件或者硬件模块出现单点失效等问题。
目前的负载均衡架构有三种,分别为:链路负载均衡、集群负载均衡和操作系统负载均衡。
链路负载均衡:通过DNS解析成不同的IP,用户根据IP访问不同的目标服务器。
集群负载均衡:分为硬件负载均衡和软件负载均衡,硬件一般要花费巨资购买一台高性能设备,缺点贵,而且当访问量超出极限时,不能进行动态扩容。软件负载均衡:使用多台廉价的PC搭建,成本低。缺点是一般一次访问请求要经过多次代理服务器,会增加网络延时。
操作系统负载均衡:通过操作系统的软中断或者硬件中断来进行负载均衡。
CND动态加速:在CDN的DNS解析中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有请求调度到选定的这条路径上回源,从而加速用户访问的效率。