第一章 深入Web 请求过程
- 1.1 B/S网络架构概述
- 1.2 如何发起一个请求
步骤:1)浏览器在建立Socket连接之前,先URL的域名DNS解析出IP地址
2)根据IP和默认80端口与远程服务器建立Socket连接
3)浏览器根据URL组装成一个get类型的HTTP请求头,通过outputstream.write发送到目标服务器,服务器等待inputstream.read返回数据
4)最后断开连接
HttpClient httpClient = createHttpClient();//创建Client PostMethod postMethod; String domainName = Switcher.domain; postMethod.addRequestHeader("Contend-Type", "application/x-www-form-urlencoded; charset=GBK");//创建请求头 for(FileerDate fileterDate : fileterDates) { postMethod.addParameter("ip", fileterDate.ip); postMethod.addParameter("count", String.valueOf(filterDate.count)); } try { httpClient.executeMethod(postMethod); postMethod.getResponseBodyAsString(); } catch (Exception e) { logger.error(e); }
- 1.3 HTTP解析
| 请求头 | 说明 |
| Accept-Charset | 用于指定客户端接受的字符集 |
| Accept-Encoding | 用于指定可接受的内容编码,如Accept-Encoding:gzip.deflate |
| Accept-Language | 用于指定一种自然语言,如Accept-Language:zh-cn |
| Host | 用于指定被请求资源的Internet主机和端口号,如Host:www.taobao.com |
| User_Agent | 客户端将它的操作系统、浏览器和其他属性告诉服务器 |
| Connection | 当前连接是否保持,如Connection:Keep-Alive |
| 响应头 | 说明 |
| Server | 使用的服务器名称,如Server:Apache/1.3.6 |
| Content-Type | 用来指明发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset=GBK |
| Content-Encoding | 与请求报头Accept-Encoding对应,告诉服务器采用的是什么压缩编码 |
| Content-Language | 描述了资源所用的自然语言,与Accept-Language对应 |
| Content-Length | 指明实体正文的长度,用以字节方式存储的十进制数字来表示 |
| Keep-Alive | 保持连接的时间,如Keep-Alive:timeout=5,max=120 |

- 1.4 DNS域名解析
步骤:
1)浏览器自动检查缓存有无该域名对应已解析过的IP
2)没有则浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果
3)无法解析则操作系统把域名发送给LDNS(本地区的域名服务器)
4)再无法解析则直接到Root Server根域名服务器请求解析
5)根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server)地址
6)LDNS再向gTLD Server发送请求
7)接受请求的gTLD Server查找并返回此域名对应的Name Server域名服务器地址,这个Name Server通常就是你注册的域名服务器地址
8)Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到IP记录,连同一个TTL值返回给DNS Server
9)返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系,缓存时间由TTL控制
10)把解析结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束
- 1.5 CDN工作机制
CDN(内容分布网络)=镜像+缓存+整体负载均衡
相当于1.4步骤7)后增加一步:Name Server域名服务器把它重新解析到另一个域名,而这个域名最终被指向CDN全局中的DNS负载均衡服务器,再由这个GTM是哪个地方的访问用户,返回给离这个反问用户最近的CDN节点
- 1.6 TCP建立连接三次握手、四次握手
参考http://blog.csdn.net/oney139/article/details/8103223



浙公网安备 33010602011771号