安全7.10

HTTPS的通信步骤
客户端发送报文给服务器开始进行SSL通信。报文中包含客户端支持的SSL指定版本、客户端生成的随机数、加密组件(加密算法以及密钥长度)。
服务器发送响应报文给客户端。和客户端一样,报文中包含SSL版本、服务器生成的随机数、加密组件(从接收到的客户端加密组件内筛选出来的)。
服务器把公钥证书发送给客户端,自己保存着私钥。 服务器把自己的公钥登陆至数字证书认证机构,数字证书认证机构用自己的私钥向服务器的公钥署数字签名并颁发公钥证书。
服务器发送报文告知客户端最初阶段的SSL握手协商部分结束。
客户端用服务器的公钥对生成的随机数加密后发送给服务器。客户端拿到服务器的公钥证书后,使用数字证书认证机构的公钥向数字证书认证机构验证公钥证书的数字签名,以确认服务器的公钥的真实性,然后生成一个新的随机数,用公钥加密这个随机数发送给服务器。
服务器用私钥解密后获得客户端发来的随机数。
客户端和服务器根据约定的加密方法,使用前面三个随机数生成对话密钥,用来加密接下来的通信过程。

状态码

100(临时响应)表示临时响应并需要请求这继续执行操作的状态码

100-继续请求者应当继续提出请求。服务器返回此代码表示已收到请求的一部分,正在等待其余部分。
101-切换协议 请求者已要求服务器切换协议,服务器已确认并准备切换。

200(成功)表示成功处理了请求的状态码

200-成功 服务器已经成功处理了请求。通常,这表示服务器提供了请求的网页。
201-已创建 请求成功并且服务器创建了新的资源。
202-已接受 服务器已接受请求,但尚未处理。
203-非授权信息 服务器已经成功处理了请求,但返回的信息可能来自别的资源。
204-无内容 服务器成功处理了请求,但没有返回任何内容。
205-重置内容 服务器成功处理了请求,但没有返回任何内容。
206-部分内容 服务器成功处理 了部分GET请求。

300(重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向
300-多种选择 针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,或提供操作列表提供请求者选择。
301-永久移动 请求的网页已永久移动到新位置。服务器回返此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置
302- 临时移动 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303-查看其它位置 请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码。
304-未修改 自上次请求后,请求的网页未修改过。服务器返回此响应,不会返回网页的内容。
305-使用代理 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
307-临时性重定向 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有的位置来进行以后的请求。
400(请求错误)这些状态码表示可能出错,妨碍了服务器的处理
400-错误请求 服务器不理解请求的语法。
401-未授权 请求要求身份验证。对于需要登陆的网页,服务器可能返回此响应。
403-禁止 服务器拒绝请求。
404-未找到 服务器到不到请求的网页。
405-方法禁用 禁用请求中指定的方法。
406-不接受 无法使用请求的内容特性响应请求的网页。
407-需要代理授权 此状态码与401(未授权)类似,但指定请求者应当授权使用代理。
408-请求超时 服务器等候请求时发生超时。
409-冲突 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。
410- 已删除 如果请求的资源已永久删除,服务器就会返回此响应。
411-需要有效长度 服务器不接受不含有效内容长度标头字段的请求。
412-未满足前提条件 服务器未满足请求者在请求者设置的其中一个前提条件。
413-请求实体过大 服务器无法处理请求,因为请求实体过大,超出了服务器的处理能力。
414-请求的URI过长 请求的URI(通常为网址)过长,服务器无法处理。
415- 不支持媒体类型 请求的格式不受请求页面的支持。
416-请求范围不符合要求 如果页面无法提供请求的范围,则服务器会返回此状态码。
417-未满足期望值 服务器未满足“期望”请求标头字段的要求

500(服务器错误)这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错
500-服务器内部错误 服务器遇到错误,无法完成请求。
501 - 尚未实施 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502 - 错误网关 服务器作为网关或代理,从上游服务器无法收到无效响应。
503 - 服务器不可用 服务器目前无法使用(由于超载或者停机维护)。通常,这只是暂时状态。
504 - 网关超时 服务器作为网关代理,但是没有及时从上游服务器收到请求。
505 - HTTP版本不受支持 服务器不支持请求中所用的HTTP协议版本。

DNS域名解析过程

当我们在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:

在这里插入图片描述
整个过程大体描述如下,其中前两个步骤是在本机完成的,后8个步骤涉及到真正的域名解析服务器:

1、浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。

2、如果用户浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,在Linux中可以通过/etc/hosts文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上,导致这些域名被劫持。

3、前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个LDNS,也就是本地区的域名服务器。这个DNS通常都提供给用户本地互联网接入的一个DNS解析服务,例如用户是在学校接入互联网,那么用户的DNS服务器肯定在学校;如果用户是在小区接入互联网,那么用户的DNS就是再提供接入互联网的应用提供商,即电信或联通,也就是通常说的SPA,那么这个DNS通常也会在用户所在城市的某个角落,不会很远。Windows环境下通过命令行输入ipconfig,Linux环境下通过cat /etc/resolv.conf就可以查询配置的DNS服务器了。这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约80%的域名解析到这里就结束了,所以LDNS主要承担了域名的解析工作。

4、如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析

5、根域名服务器返回给本地域名服务器一个所查询的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右

6、本地域名服务器LDNS再向上一步返回的gTLD服务器发送请求

7、接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是用户注册的域名服务器,例如用户在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成

8、Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP地址,连同一个TTL值返回给DNS Server域名服务器

9、返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系,缓存时间由TTL值控制

10、把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束

在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值