《深入分析JavaWeb技术内幕》读书笔记(一)Web请求过程

一丶Web请求过程

1.网络架构

C/S(长连接交互)一一一》B/S(基于http【无状态的短连接】)

PS:基于http协议的服务器:Apache、IIS、Nginx、Tomcat、JBoss等

用户请求过程:
用户输入网址———>DNS域名解析——>根据IP地址寻找服务器(负载均衡选择服务器)———>查找数据(分布式缓存、静态文件、数据库)——>请求静态资源(图片,css等)可能会请求CDN服务器。
《深入分析JavaWeb技术内幕》读书笔记(一)Web请求过程
PS:1.网络上所有资源都用URL(统一资源定位符)表示。
2.一个http连接本质上是一个socket连接
DNS解析过程
1.检查浏览器缓存,若浏览器无缓则查询操作系统缓存(windows:c盘hosts文件配置
linux:/etc/named.conf)
2.(若1查不到)根据dns地址接入本地域名服务器[LDNS](80%在这里完成)
3.(若2查不到)到根服务器请求解析,返回给本地域名服务器一个国际顶级域名服务器,也称为主域名服务器(com,cn,org等),本地域名服务器再向返回的国际级服务器请求解析。
4.国际级服务器返回此域名对应的name server域名服务器地址,(该name server域名服务器通常为该域名服务提供商)
5.Name Server 域名服务器检查域名/IP映射关系表,解析出ip,返回ip和ttl值给LDNS域名服务器,LDNS将缓存该域名与IP的对应关系。
6.解析结果返回给用户,TTL值控制缓存时间,按照该值缓存到本地系统缓存中,域名解析过程结束。
PS:1.name server可能有多级,负载均衡等可能影响解析过程。
跟踪域名解析过程
Windows:nslookup 域名
Linux:dig 域名
清除缓存域名
Windows:ipconfig/flushdns
Linux:/etc/init.d/nscd restart
PS:Java中JVM也会缓存DNS解析结果,由InetAddress类完成。两种缓存策略:正确/失败解析结果缓存
注:使用InetAddress类解析域名,需要用单例模式,一次完整的域名解析非常耗时。
《深入分析JavaWeb技术内幕》读书笔记(一)Web请求过程
几种域名解析方式
(A记录、MX记录、CNAME记录、NS记录、TXT记录)
A(Address)记录:域名对应IP地址。(可多对一,不能一对多)
MX(Mail Exchange)记录:
正常Web请求仍解析到A记录,邮件放到MX记录所设置的服务器
CNAME记录:别名解析,可为一个域名设置一个或多个别名。
NS记录:为某个域名指定DNS服务器。
TXT记录:为某个主机名或域名设置说明
DNS工作机制
DNS(Content Delivery Network)内容分部网络。
CDN=镜像(Mirror)+缓存(Cache)+整体负载均衡(GSLB)
一般缓存静态数据为主。
特性:1.可扩展(性能/成本可扩展)
2.安全性
3.可靠性、响应和执行。
《深入分析JavaWeb技术内幕》读书笔记(一)Web请求过程
负载均衡(Load Balance)
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
继续了解负载均衡(引用:http://network.51cto.com/art/201512/501301.htm