## 第二章小结
### 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站点的一个后端数据库
- 介绍
- 第一章 计算机网络和因特网
- 1.1 什么是因特网
- 1.2 网络边缘
- 1.3 网络核心
- 1.4 分组交换网中的时延、丢包和吞吐量
- 1 .5 协议层次及其服务模型
- 1.6 面对网络攻击
- 1 .7 计算机网络和因特网的历史
- 第二章 应用层
- 2.1 应用层协议原理
- 2.2 Web 和 HTTP
- 2.3 文本传输协议:FTP
- 2.4 因特网中的电子邮件
- 2.5 DNS:因特网的目录服务
- 2.6 P2P应用
- 2.7 套接字编程
- 第三章 运输层
- 3.1 概述和运输层服务
- 3.2 多路复用与多路分解
- 3.3 无连接运输:UDP
- 3.4 可靠数据传输原理
- 3.5 面向连接的运输:TCP
- 3.6 拥塞控制原理
- 3.7 TCP拥塞控制
- 第四章 网络层
- 4.1 概述
- 4.2 虚电路和数据报网络
- 4.3 路由器工作原理
- 4.4 网际协议:因特网的转发和编址
- 4.5 路由选择算法
- 4.6 因特网中的路由选择
- 4.7 广播和多播路由选择
- 第五章 链路层:链路、接入网和局域网
- 5.1 链路层概述
- 5.2 差错检测和纠正技术
- 5.3 多路访问链路和协议
- 5.4 交换局域网
- 5.5 链路虚拟地址:网络作为链路层
- 5.6 数据中心网络
- 5.7 回顾:WEB页面请求的历程
- 第六章 无线网络和移动网络
- 6.1 概述
- 6.2 无线链路和网络特征
- 6.3 WiFi:802.11 无线LAN
- 6.4 蜂窝因特网接入
- 6.5 移动管理:原理
- 6.6 移动IP
- 6.7 蜂窝网中的移动性管理
- 第七章 多媒体网络
- 7.1 多媒体网络应用
- 7.2 流式储存视频
- 7.3 IP语音
- 7.4 实时会话式应用的协议
- 7.5 支持多媒体的网络
- 第八章 计算机网络中的安全
- 8.1 什么是网络安全
- 8.2 密码学的原则
- 8.3 报文完整性和数字签名
- 8.4 端点鉴别
- 8.5 安全电子邮件
- 8.6 使用TCP连接安全:SSL
- 8.7 网络层安全性:IPsec和虚拟专用网
- 8.8 使无线LAN安全
- 8.9 运行安全性:防火墙和入侵检测系统
- 第九章 网络管理
- 9.1 什么是网络管理
- 9.2 网络管理的基础设施
- 9.3 因特网标准管理框架
- 9.4 ASN.1
- 总结
- c.1 第一章小结
- c.2 第二章小结
- c.3 第三章小结
- c.4 第四章小结
- c.5 第五章小结
