-
简述DNS
DNS域名系统是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络。
-
DNS的作用
通常我们有两种方式识别主机:通过IP地址或主机名。人们喜欢便于记忆的主机名表示,而路由器使用定长的,有层次结构的IP地址。为了满足不同的需要,我们需要一种将主机名转换为IP地址的目录服务,域名系统作为将域名和IP地址相互映射的一个分布式数据库,能够让人们更好的访问互联网。
-
DNS的层次结构从上到下依次为根域名服务器,顶级域名服务器,权限域名服务器和本地域名服务器。
-
DNS的工作原理
(1) 客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
(2)当本地的域名服务器接收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。
(3)如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发送给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
(4)本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关的下级的域名服务器的地址。
(5)重复第四步,直到找到正确的记录。
(6)本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
-
简述DNS协议
DNS协议是基于UDP的应用层协议,它的功能是根据用户输入的域名,解析出该域名对应的IP地址,从而给客户端访问。
-
HTTP和HTTPS的区别
HTTP:超文本传输协议是互联网上应用最为广泛的网络协议。设计HTTP最初的目的是为了提供一种发布和接受HTML页面的方法,使浏览器更加高效。HTTP协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。
原理是客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP来完成的。建立连接之后,客户端发送一个请求给服务器,请求方式的格式是统一资源标志符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和许可内容。服务器接到请求之后,给予相应的响应信息,包括信息的协议版本号、一个成功或错误的代码,后面是MIME信息包括服务器信息、实体信息和可能的内容。
HTTPS:是以安全为目标的HTTP通道,其安全基础是SSL协议。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。HTTPS的设计目标是数据保密性、数据完整性和身份校验安全性。
HTTP和HTTPS的区别:
(1)HTTPS协议需要用到CA认证证书,包含了公钥、公钥拥有者名称、数字签名、有效期、授权中心名称、序列号等信息。
(2)HTTP是超文本传输协议,信息是明文传输。HTTPS则是具有安全性的SSL加密传输协议。
(3)HTTP和HTTPS采用的完全不同的连接方式,用的端口也不一样,HTTP是80,HTTPS是443。
(4)HTTP的连接简单且无状态。(无状态是指数据包的发送、传输和接受都是相互独立的,通信双方都不长久的维持对方的任何信息。)
HTTP的响应报文包括状态行、响应头部和对应数据。其中状态行包括了HTTP版本号,状态码信息。
-
HTTP请求/响应的步骤
客户端连接到web服务器->发送Http请求->服务器接受请求并返回HTTP响应->释放连接TCP连接->客户端浏览器解析HTML内容
-
http1.0/1.1/2.0
HTTP1.0:
HTTP1.0只提供最基本的认证,用户名和密码都没有加密
只支持短连接(建立连接–传输数据–断开连接),每次发送数据都要经过三次握手和四次挥手.
不支持断点续传,只要发送就会发送全部数据
认为每台计算机都只能绑定一个IP地址,不支持虚拟网络
HTTP1.1:
HTTP1.1使用了摘要算法进行身份验证
默认使用长连接(通过心跳保持):只需要建立一次连接,传输多次数据,传输完成之后只需要一次切断即可.
支持断点续传:通过请求头的Range实现
使用虚拟网络:在一台物理计算机上可以存在多个虚拟主机,共享一个IP地址
-
HTTP状态码
(1)1XX:指示信息,表示请求正在处理
100:continue,客户端继续处理请求。
101:switching protocol,切换协议,服务器根据客户端的请求切换到更高级的协议。
(2) 2XX:成功,表示请求已经被成功处理
200:OK,请求成功,请求所希望的响应头或数据体将随此响应返回。
201:created,请求已实现,并且有一个新的资源已经依据需求而建立。
202:Accepted,请求已接受,还未处理成功。
(3) 3XX:重定向:要完成的请求需要进行附加操作
300:Multiple Choices,多种选择,被请求的资源有一系列可以选择的回应地址。
301:永久移动,请求的资源已被永久的移动到新URL,返回信息会包含新的URL。
302:Found,临时移动,资源只是临时被移动,客户端应继续使用原有的URL。
(4) 4XX:客户端错误,请求有语法错误或者请求无法实现,服务器无法处理请求
400:bad request,客户端请求的语法错误,服务器无法理解
401:Unauthorized,当前请求需要用户验证
403:Forbidden,服务器理解请求,但是拒绝执行
404:Not Found,请求失败,请求所希望得到的资源没有在服务器端被发现。
408:Request Time-Out,请求超时。服务端等待客户端发送的请求时间过长。
(5) 5XX:服务端错误:服务器处理请求出现错误。
500:Internal Server,服务器遇到了未曾料到的错误,导致他无法处理请求
501:Not Implemented,服务器不支持当前请求所需要的某个功能
502:Bad Gateway,网关错误
503:Service Unavailable,临时服务器维护或者过载,服务器当前无法处理请求
504:GateWay Time-out,网关超时
505:Http Version not supported,服务器不支持当前请求中的HTTP版本
-
HTTP有哪些请求头,请求头有哪些字段
Accept:指定客户端能够接收的内容类型。
Date:请求发送的日期和时间。
Accept-Language:浏览器可接受的语言。
Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。
AuthorizationHTTP:授权的授权证书。
-
GET和POST的区别(两者均为HTTP请求类型)
(1)GET在浏览器回退时是无效的,但POST会再次提交
(2)GET产生的URL地址可以被BookMark,但Post不可以
(3) Get请求会被浏览器主动cache,而POST不会,除非手动设置
(4)GET请求只能进行URL编码,但是POST支持多种编码方式
(5)GET请求在URL传送的参数有长度限制,但POST没有
(6)对参数的数据类型,GET只接受ASCII字符,但POST没有限制
(7)GET比POST更不安全,因为参数直接暴露在URL上,而POST放在Request Body中。
-
如何理解HTTP是无状态的
HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是说,打开一个服务器上的网页和上一次打开这个服务器上的网页之间没有任何联系。
-
输入URL后到加载网页的整个过程是怎么样的
(1)浏览器地址栏输入URL
(2)浏览器会先查看浏览器缓存–系统缓存–路由缓存,如有存在缓存,就直接显示。如果没有,接 着显示第三步
(3)域名解析(DNS)获取相应的IP
(4)浏览器向服务器发起TCP 连接,与浏览器建立TCP三次握手
(5)握手成功,浏览器向服务器发送http请求,请求数据包
(6)服务器请求数据,将数据返回到浏览器
(7)浏览器接收响应,读取页面内容,解析html源码,生成DOm树
(8)解析css样式,浏览器渲染,js交互绑定多个域名,数量不限;