c.2 第二章小结
DNS 域名系统
DNS服务是一个实现查询主机名对应IP地址的黑盒服务,当应用程序希望查询一个主机名对应的IP地址时,会将主机名传递给运行在端系统上的DNS客户端,由DNS客户端向DNS服务器查询,最后返回IP地址给应用程序。
DNS 解析过程
迭代式查询:请求主机向本地DNS服务器发送查询请求,本地DNS服务器如果没有对应的记录,则向根DNS服务器查询,获得对应顶级域DNS服务器的IP地址,然后向顶级域DNS服务器查询对应权威DNS服务器的IP地址。最后从权威DNS服务器处获取获取目标IP地址,返回给请求主机。
递归式查询:请求主机向本地DNS服务器发送查询请求,本地DNS服务器向对应根DNS服务器查询,根DNS服务器向顶级域名服务器查询,顶级域名服务器向权威服务器查询,最后再逐层返回给请求主机。
HTTP 中 GET 和 POST 的区别
从原理性看:
根据 HTTP 规范,GET 用于信息获取,而且应该是安全和幂等的;
根据 HTTP 规范,POST 请求表示可能修改服务器上资源的请求;
GET 产生一个 TCP 数据包;POST 产生两个TCP数据包;
从表面上看:
后退/刷新:GET 是无害的,但是 POST 数据会被重新提交;
书签:GET 可以被储存为书签,POST 不可以;
缓存:GET 可以被缓存,POST 不行;
历史:GET 方法的参数会被储存在历史中,POST 的不会;
对数据长度的限制:当发送数据时,GET 方法向 URL 添加数据,URL 的长度是受限制的,而 POST 方法将数据放在 HTTP 包内,所以没有限制;
对数据类型的限制:GET 只允许 ASCII 字符,POST 没有限制;
安全性:GET 参数为 URL 的一部分,所以相比 POST 安全性要差;
参数可见性:GET 参数可以在 URL 中看到,POST 不可以;
HTTP 协议中一些报文字段的作用,以及状态码
报文字段作用:
keep-alive
开启 HTTP Keep-Alive 之后,能复用已有的 TCP 链接,HTTP/1.1 之后默认开启 Keep-Alive,在 HTTP 的头域中增加Connection
选项。当设置为Connection:keep-alive
表示开启,设置为Connection:close
表示关闭。Cache-Control
设置缓存策略,其形式为Cache-Control: public, max-age=xxx
其中max-age
设置cache的最大存活时间,public
为缓存策略,取值有:当设置为
public
时,用户浏览器和中间代理都会缓存;当设置为
private
时,只有用户端缓存;当设置为
no-store
时,不进行缓存;当设置为
no-cache
时,不进行缓存(不同浏览器支持不同);
状态码:
200:
OK
,正常响应;304:
Not Modified
,表示客户机缓存的版本是最新的,客户机应该继续使用它;403:
Forbidden
,服务器理解客户端请求,但拒绝处理它,一般是权限设置导致;404:
Not Found
,服务器上不存在所请求的资源;502:
Bad Gateway
,指错误网关,无效网关;
HTTP 和 HTTPS 区别,HTTPS 在请求时额外的过程,HTTPS 是如何保证数据安全的
HTTP 协议运行在 TCP(80端口)之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 协议运行在 SSL/TLS 协议上,SSL/TLS 协议运行在 TCP(443端口) 上,所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。
session 机制、cookie 机制
通常从注册入系统到注销系统之间所经过的时间以及如果需要的话,可能还有一定操作空间,而:
session 技术是服务端的解决方案,它通过服务器来保持状态的;
cookie 技术是客户端的解决方案,它是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息;
HTTP响应报文中的一个Cookie首部
HTTP请求报文中的一个Cookie首部
客户端系统保留的Cookie,由浏览器管理
位于Web站点的一个后端数据库
Last updated
Was this helpful?