一、HTTP的状态码:状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100-199),成功响应(200-299),重定向(300-399),客户端错误(400-499)和服务器错误(500-599)。 二、HTTPS的传输演变过程 1、单钥匙锁: 数据在传输时上了一把锁,同时附加一把钥匙,这个锁在加密时需要这把钥匙,在解密时同样需要这把钥匙。 2、双钥匙锁——防篡改 数据在传输时上了一把锁,与这个锁对应的有两把不同的钥匙A和B,其逻辑为:若用A钥匙加锁,则必须用B钥匙解锁。反之,用B钥匙加锁,则必须用A钥匙解锁。 3、双钥匙锁——防泄漏 数据在传输时上了一把锁,与这个锁相对应的有四把不同的钥匙,分别为A、B、C、D,客户端拿着钥匙C和钥匙D,目前客户端拥有钥匙B,如果客户端使用钥匙B去加锁,那么只有钥匙A才能解锁,而钥匙A只有服务端才有,这样,客户端用钥匙B加锁的数据,就没有任何人可以篡改了,就着这个思路,因为客户端和服务端是完全对称的关系,所以只要客户端持有钥匙C和钥匙D,然后客户端将钥匙D给服务端,客户端自身保留钥匙C,这样,服务端用钥匙D加锁数据,就只有客户端可以解开。 这样就保证了“双向通信的安全性”数据在传输过程中就无法查看及篡改,因为会被客户端及服务端发现。但缺点在于,这样的设计过于复杂,传输效率过低。 4、单双钥匙相互配合 最初的单钥匙锁的效率很高,但因为在传送钥匙的过程中容易被复制,然后对数据的传输不安全。那么,则可以用双钥匙锁的安全性,把单钥匙锁的钥匙安全地传送给对方,然后再用单钥匙锁,高效率的通信。这样,安全和传输效率就都能保证了。 5、找公证人做公证 首先,我们至少有一次,就是第一次传输的那把钥匙,是无法进行加密的,会在传输过程中被看到,这个是无法避免的,但是我们可以做到,就算让看到,却无法做到篡改。 这样,就需要有一位公证人,公证人也准备两把钥匙,分别为钥匙J和钥匙K,然后将钥匙K公开让所有人都知道。 然后,在客户端第一次准备给服务端钥匙D时,找到公证人,将钥匙D用公证人的钥匙J加锁。 然后客户端将这个用钥匙J加锁的盒子传输给服务端,然后服务端使用公证人的钥匙K对这个盒子进行解锁,,这样就可以得到客户端的钥匙D了。 这样,即便在传输过程中用公开的钥匙K打开,看到钥匙D,但是却无法将伪造的钥匙传给对端,因为这个盒子必须用钥匙J加锁,而钥匙J只有公证人才知道 ,这样,钥匙在传输过程中,只能被看而不能被篡改了。 如果不能篡改,那么,我就能成功用客户端给我的真正的钥匙D加锁我们之后通讯用的钥匙M,于是,钥匙M就可以安全地传给客户端,之后双方对端就可以使用这个谁也不知道的钥匙M,和配套的单钥匙锁,进行通讯! 三、DNS解析过程 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。 第三步:如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关的下级的域名服务器的地址。 第五步:重复第四步,直到找到正确的记录。 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
|