企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 第二章小结 ### 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站点的一个后端数据库