用户访问网站基本流程
客户端用户在Web浏览器里输入网站地址,到看到网站内容的完整访问流程。
- 客户端用户在浏览器输入www.xxx.com网站地址,回车后,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.xxx.com域名对应的IP地址解析记录,如果有就直接获取IP地址,然后去访问这个IP地址对应域名www.xxx.com的服务器。一般第一次请求时,DNS缓存是没有解析记录的,而hosts多在内部临时测试时使用。
- 如果客户端本地DNS缓存及hosts文件没有www.xxx.com域名对应的解析记录,那么,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址(通常称此DNS为LDNS,即Local DNS)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端,如果没有,则LDNS会负责继续请求其他的DNS服务器。
- LDNS从DNS系统的(".")根开始请求对www.xxx.com域名的解析,并针对各个层级的DNS服务器进行一系列的查找,最终会查找到xxx.com域名对应的授权DNS服务器,而这个授权DNS服务器正式企业购买域名时用于管理域名解析的服务器,这个授权服务器会有www.xxx.com对应的IP解析记录。如果此时没有,就表示企业的域名管理人员没有为www.xxx.com域名做解析设置,即网站还没架设好。
- xxx.com域名的授权DNS服务器会把www.xxx.com对应的最终IP解析记录(例如:1.1.1.1)发给LDNS。
- LDNS把来自授权DNS服务器www.xxx.com对应的IP解析记录发给客户端浏览器,并且它会把该域名和IP的对应解析缓存起来,以便下一次更快地返回相同解析请求的记录,这些缓存记录在指定的时间(DNS TTL值控制)内不会过期。
- 客户端浏览器获取了www.xxx.com的对应IP地址,接下来,浏览器会请求获得IP地址对应的网站服务器,网站服务器接收到客户的请求并相应处理(此处的处理可能是数百台集群的服务器系统,也可能是一台云主机),将客户请求的内容返回给客户端浏览器。至此,一次访问浏览网页的完整过程就完成了。
提示:上面仅仅是客户端第一次访问网站的基本过程,连续访问后,系统本地和LDNS都会有缓存记录,再访问时流程就会有变化,会直接取本地缓存记录,这样访问过程就很快了。
(1)查看windows客户端本地缓存的DNS解析记录命令
ipconfig /displaydns
(2) 清除windows客户端本地缓存的DNS解析记录命令
ipconfig /flushdns
(3)windows系统下hosts域名解析记录的位置
C:\windwos\System32\drivers\etc\hosts
DNS系统解析流程
前两步和访问网站都是相同的操作
- 客户端用户在浏览器输入www.xxx.com网站地址,回车后,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.xxx.com域名对应的IP地址解析记录,如果有就直接获取IP地址,然后去访问这个IP地址对应域名www.xxx.com的服务器。一般第一次请求时,DNS缓存是没有解析记录的,而hosts多在内部临时测试时使用。
- 如果客户端本地DNS缓存及hosts文件没有www.xxx.com域名对应的解析记录,那么,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址(通常称此DNS为LDNS,即Local DNS)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端,如果没有,则LDNS会负责继续请求其他的DNS服务器。
- LDNS从DNS系统的(".")根开始请求对www.xxxcom域名的解析,根DNS服务器在全球一共有13台,根服务器下面是没有www.xxx.com域名解析记录的,但是根下面有www.xxx.com对应的顶级域.com的解析记录,因此,根会把.com对应的DNS服务器地址返回给LDNS。
- LDNS获取到.com对应的DNS服务器地址后,就会去.com服务器请求www.xxx.com域名的解析,而.com服务器下面也没有www.xxx.com域名对应的解析记录,但是有xxx.com域名的解析记录,因此,.com服务器会把xxx.com对应的DNS服务器地址返回给LDNS。
- 同理,LDNS获取到xxx.com对应的DNS服务器地址后,就会去xxx.com服务器请求对www.xxx.com域名的解析,xxx.com域名对应的DNS服务器是该域名的授权DNS服务器,这个DNS服务器正是企业购买域名时用于管理解析的服务器(也可以是自建的授权DNS服务器),这个服务器就会有与www.xxx.com对应的IP解析记录,如果此时没有,就表示企业的域名人员没有为www.xxx.com域名做解析,即网站还没架设好。
- xxx.com域名DNS服务器会把www.xxx.com对应的IP解析记录(例如1.1.1.1)发给LDNS。
- LDNS把来自DNS服务器的与www.xxx.com对应的IP解析记录发给客户端浏览器,并且LDNS会在本地把域名和IP的对应的解析记录缓存起来,以便下一次更快的返回相同解析请求的记录。至此,整个DNS的解析流程就完成了。
DNS解析流程图
http协议
1.http协议版本
HTTP/1.0是第一个得到广泛使用的HTTP版本。只是简单的使用在网页和网络请求上;一对一短连接。
HTTP/1.1当前主流的HTTP版本,支持持久连接;一对多;主要提供了身份认证、状态管理、和Cache缓存等机制相关的头信息。
HTTP/2.0多个请求可同时在一个连接上并执行。当某个请求任务耗时严重,不会影响到其他连接的正常执行。
2.常用的HTTP请求方法
GET 客户端请求指定资源信息,服务器返回指定资源
HEAD 只请求响应报文中的HTTP首部
POST 将客户端的数据提交到服务器,例:注册表单
PUT 用从客户端向服务器传送的数据取代指定的文档内容
DELETE 请求服务器删除request-URI所标识的资源
MOVE 请求服务器将指定的页面移至另一个网络地址
3.HTTP状态码介绍及常见状态码
100-199 用于指定客户端相应的某些动作
200-299 用于表示请求成功
300-399 用于已经移动的文件,并且常被包含在定位头信息中指定新的地址信息
400-499 用于指出客户端的错误
500-599 用于指出服务器的错误
200-OK 服务器成功返回网页,这是成功的HTTP请求返回的标准状态码
301-Moved Permanently 永久跳转,所请求的网页将永久跳转到被设定的新位置,例如:从xxx.com跳转到www.xxx.com
403-Forbidden 禁止访问,虽然请求是合法的,但服务器端因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务权限配置不当所致
404-Not Found 服务器找不到客户端指定的页面,可能是客户端请求不了服务器上不存在的资源所致
500-Internal Server Error 内部服务器错误,服务器遇到了意料不到的错误,不能完成客户的请求。这是一个笼统的报错,一般为服务器的设置或内部程序问题导致。例如:SElinux开启等问题
502-Bad Gateway 坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。这通常为反向代理服务器下面的节点出问题所致
503-Service Unavailable 服务当前不可用,可能是服务器超载或停机维护所致,或反向代理服务器后面没有提供可以提供服务的节点
504-Gateway Timeout 网关超时,一般是网关代理服务器请求后端时,后端服务没有在特定的时间内完成处理请求。后端服务超时
HTTP请求报文和应答报文
整个HTTP协议请求的工作流程如下:
- 终端客户在浏览器输入地址www.xxx.com
- 浏览器请求DNS服务器把域名www.xxx.com转换为IP地址
- 浏览器将端口号从访问地址中解析出来
- 浏览器通过解析后的IP地址以及端口号与web服务器之间建立一条TCP连接。
- 建立TCP连接后,浏览器向web服务器发送一条HTTP请求报文
- web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文
- web服务器关闭HTTP连接,关闭TCP连接,浏览器显示访问的网站内容到屏幕上。
网站流量度量术语
1.IP
独立IP数,是指不同IP地址的计算机访问网站时被计的总次数。一般一天内相同IP地址的客户端访问网站页面只会被计为一次
2.PV
页面浏览量或单击量,不管客户端是不是相同,也不管IP地址是不是相同,用户只要访问网站页面就会被计算PV,一次计一个PV。
3.UV
独立访客。同一个客户端(PC或移动端)访问网站被计为一个访客。一天内相同的客户端访问同一个网站只计一次UV。UV一般以客户端Cookie等技术作为统计依据的,实际统计会有误差。
什么是网站并发连接?
即网站服务器在单位时间内能够处理的最大连接数。
例如:一个网站的并发是5000。意味着单位时间内(理解为1秒或数秒内),正在处理的连接数,正在建立的连接数,加起来一共是5000个