文章目录
1 简述DNS解析过程
- 客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给dns服务器
- 本地dns服务器会在自己的区域里面查找,找到即根据此记录进行解析,若没有找到,就会在本地的 缓存里面查找
- 本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器
- 根域名服务器解析客户机请求的根域部分,它把包含的下一级的dns服务器的地址返回到客户机的 dns服务器地址
- 客户机的dns服务器根据返回的信息接着访问下一级的dns服务器
- 这样递归的方法一级一级接近查询的目标,最后在有目标域名的服务器上面得到相应的IP信息
- 客户机的本地的dns服务器会将查询结果返回给我们的客户机
- 客户机根据得到的ip信息访问目标主机,完成解析过程
2 转发和重定向的区别
- 转发是服务器行为。服务器直接向目标地址访问URL,将相应内容读取之后发给浏览器,用户浏览器地址栏URL不变,转发页面和转发到的页面可以共享request里面的数据。
- 重定向是利用服务器返回的状态码来实现的,如果服务器返回301或者302,浏览器收到新的消息后自动跳转到新的网址重新请求资源。用户的地址栏url会发生改变,而且不能共享数据。
3 HTTP
3.1 简述 HTTP 1.0
- 规定了请求头和请求尾,响应头和响应尾(get post)
- 每一个请求都是一个单独的连接,做不到连接的复用
3.2 简述HTTP 1.1的改进
- HTTP 1.1默认开启长连接,在一个TCP连接上可以传送多个HTTP请求和响应。使用 TCP 长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。
- 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。
3.3 简述HTTP 2.0的改进
- 提出多路复用。多路复用前,文件是串行传输的,请求a文件,b文件只能等待,并且连接数过多。引入多路复用,a文件b文件可以同时传输。
- 引入二进制数据帧。其中帧对数据进行顺序标识,有了序列id,服务器就可以进行并行传输数据。
3.4 HTTP特点
- 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作。
- 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
- 基于请求和响应:基本的特性,由客户端发起请求,服务端响应。
- 简单快速、灵活。
- 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性。
4 简述http状态码和对应的信息
1XX:接收的信息正在处理
2XX:请求正常处理完毕
3XX:重定向
4XX:客户端错误
5XX:服务端错误
常见错误码:
200 OK : 请求被成功的处理并且正确的返回
301:永久重定向
302:临时重定向
304:资源没修改,用之前缓存就行
304 Not Modified : 一般用来实现缓存
400:客户端请求的报文有错误
403:表示服务器禁止访问资源
404 Not Found: 找不到资源
405 Method Not Allowed: 请求不允许
500 Internal Server Error :服务端代码错误
502 Bad Gateway: 坏请求
504 Gateway Time-out : 网络超时
505 HTTP Version not supported : 协议版本不匹配
5 HTTPS
5.1 什么是HTTPS
HTTPS是身披SSL外壳的HTTP。HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

5.2 HTTPS的连接过程
- 客户端向服务器发起HTTP请求,将支持的加密算法列表和用作产生秘钥的随机数发给服务器。
- 服务器选择一套浏览器支持的加密算法,将它和一份包含服务器公钥的整数发给浏览器;证书还包含了用于认证目的的服务器标识,服务器还提供了一个随机数。
- 客户端对服务器的证书进行验证,并抽取服务器的公用秘钥;然后,再产生一个随机值用来进行对称加密的秘钥(client key);再用服务器公钥对客户端秘钥进行非对称加密,至此第一个HTTP请求结束。
- 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端对称密钥发送给服务器。
- 服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。
- 服务器将加密后的密文发送给客户端。
- 客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。
5.3 HTTPS的优点
尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:
(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
(4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。
5.4 HTTPS的缺点
(1)HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;
(2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
(3)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
(5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安
6 HTTP与HTTPS的区别
- HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用
- HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的ssl加密传输协议。
- HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
7 Get与Post区别
Get:指定资源请求数据,刷新无害,Get请求的数据会附加到URL中,传输数据的大小受到url的限制。
Post:向指定资源提交要被处理的数据。刷新会使数据会被重复提交。post在发送数据前会先将请求头发送给服务器进行确认,然后才真正发送数据。

本文详细介绍了DNS解析的过程,区分了转发与重定向的区别,概述了HTTP的发展历程,从1.0到2.0的改进,以及HTTP与HTTPS的区别和优缺点。此外,还探讨了GET和POST请求的不同。

2110

被折叠的 条评论
为什么被折叠?



