1、用户访问网站的基本流程
1)客户端用户在浏览器里输入网站地址后,系统会首先查找系统本地的DNS缓存及hosts文件信息,确认是否存在网站域名对应的IP解析记录,如果有就直接获取IP地址,然后去访问这个IP地址对应域名的服务器。一般第一次请求时,DNS缓存是没有没有解析记录的,而hosts多在内部临时测试时使用。
2)如果客户端本地DNS缓存及hosts文件没有域名对应的解析记录,那么,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址解析(Local DNS即LDNS),如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端,如果没有,则LDNS会负责继续请求其他的DNS服务器。
3)LDNS从DNS系统的(“.”)根开始请求对域名的解析并针对各个层级的DNS服务器系统进行一系列的查找,最终会查找到域名对应的IP解析记录(列如:1.1.1.1)发给LDNS 。LDNS 会把来自授权DNS服务器的IP解析记录发给客户端浏览器,并在本地缓存起来,以便下一次更快的返回相同解析请求的记录,这些缓存记录在指定的时间(DNS TTL值控制)内不会过期
4)客户端浏览器获取了域名对应的IP地址,接下来,浏览器会请求获得IP地址对应的网站服务器,网站服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器。至此,一次访问浏览网页的完整过程就完成了。
1、 画图并简述DNS解析流程
1)首先要简单了解DNS架构图可以对照我们的Linux目录结构来理解
DNS系统的架构类似于一颗倒挂着的树(和Linux系统目录结构类似)它的顶点也是根(“.”)只不过这个根是用点(.)来表示的
2)DNS解析流程
通过练习1我们了解了用户访问网站的基本实现流程 客户端一步一步通过各个层级的DNS,获取到域名所对应的IP其实就是DNS解析流程的说明 只不过客户机到LDNS是一个递归查询 而LDNS到DNS是一个迭代查询的过程 如下图所示 详解DNS解析流程
3、 什么是HTTP协议、简述HTTP1.0和1.1的区别
HTTP协议,全称为HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的重要应用之一是WWW服务。设计HTTP协议最初的目的就是提供一种发布和接收HTML(一种页面标记语言)页面的方法。它有很多的应用,但最流行的就是用于Web浏览器和Web服务器之间的通信,即WWW应用或称Web应用
HTTP协议的WWW服务应用的默认端口为80
HTTPS协议的WWW服务应用的默认端口为443 主要用于网银、支付等和钱相关的业务
1)HTTP1.0
是第一个得到广泛使用的HTTP版本,增加了HTTP请求头可支持更多的请求方法,并且能对多媒体对象进行处理。HTTP1.0规定浏览器与服务器只能保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后即断开TCP连接,服务器不跟踪每个客户,也不记录过的请求。
2)HTTP1.1
重点是修复HTTP设计中的缺陷,从可扩展性,缓存处理、带宽优化、持久连接、host头、错误通知、消息传递、内容协商等多个方面都做了相关改进。HTTP1.1是当前互联网主流的HTTP版本
在连接方面,HTTP1.1支持持久连接,在一个TCP连接上可以传送多个HTTP功能
在请求头方面,HTTP1.1增加了更多的请求头和响应头信息,用以增强HTTP功能。
4、 简单介绍HTTP请求报文和HTTP响应报文
HTTP报文分为HTTP请求报文,和HTTP响应报文
1) HTTP请求报文
HTTP请求报文由请求行、请求头部(header)、空行和请求报文主体几个部分组成
a. 请求行
请求行是请求报文的第一行,用来说明客户端想要做什么。
b. 请求头部
请求头部由关键字/值对组成、每行一对,关键字和值用英文冒号‘:’分隔。请求头部的作用是通过客户端把请求的相关信息告诉给服务器。与请求报文相关的最常用的请求头是Content-Type和Content-Length.
c. 空行
最后一个请求头部信息之后是一个空行,通过发送回车符和换行符,通知Web服务器空行以下不会有请求头部的信息了。
d. 请求报文主体
请求报文主体中包括了要发送给Web服务器的数据信息。请求报文主体不会应用于HTTP的GET命令方法,而是应用于POST方法。POST方法适用于需要客户填写表单的场合。
2) HTTP响应报文(Response Message)介绍
HTTP响应报文由起始行、响应头部(header)、空行和响应报文主体这几个部分组成,和HTTP请求报文格式类似。如下图所示
请说出HTTP状态码200、301、403、404、502、504代表的意义
200-OK
服务器成功返回网页,这是成功的HTTP请求返回的标准状态码
301
永久跳转,所请求的网页将永久跳转到被设定的新位置
403
禁止访问,虽然这个请求时合法的,但是服务器端因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务器或服务权限配置不当所致
404
服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源所致
500
内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个较为笼统的报错,一般为服务器的设置或内部程序问题导致。列如SElinux开启而又没有为HTTP设置规则许可,客户端访问就是500
502 -Bad Gateway
坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。这通常为反向代理服务器下面的节点出问题所致
503
服务当前不可用,可能是服务器超载或停机维护导致的,或者是反向代理服务器后面没有可以提供服务的节点
504
网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求。多数是服务器过载导致没有在指定的时间内返回数据给前端代理服务器。