你还剩多少时间?
有个日本人写的图解 TCP/IP 比较不错,书不厚,该能了解的都能了解清楚。足够你面试了。
如果你有充裕的时间,觉得无聊的话, TCP/IP 还有
1. Internetworking with TCP/IP 卷 1 , by Douglas E 。 Comer 第二卷不用看,讲的是这些协议是怎么设计,怎么用 C 实现的。第三卷更不用看。
2. Computer Networks and Internets 同一个作者
相信我,你的工作如果不是和网络密切相关的话,这两本书就当参考书扫两眼即可(甚至扫两眼都不用扫 >_<),不用仔细看。
HTTP 方面的 HTTP 权威指南也不错,但是额。。挺厚的。。挑有用的看吧。
HTTPS 除了之前那本书提到的,我建议你去 SSLLab 扫描一下 Paypal :
https://www.ssllabs.com/ssltest/analyze.html?d=www.paypal.com&s=66.211.169.66把里面所有你不认识的词汇术语都查一查看一看, HTTPS 这方面基本就齐活了。
那我再提出来几个问题,你自己想想看看?(这些问题多少有点坑,某些不太容易在理论性的书上找到答案)
A1. 一个 IP 地址能存在多个 https 网站么?
A2. TLS 和 SSL 的关系 /区别是?
A3. 描述一个网站 SSL 证书会被吊销的情况。
A4. 一个 SSL 证书可以同时支持多个域名么?
A5. 可以只给 IP 地址(没有域名)签发 SSL 证书么?
A6. 为什么签发公众认可的 SSL 证书要花钱?
A7. 能自己给自己签发 EV SSL 证书么?主流浏览器能识别么?
==============
B1. 一个 Cipher Suite : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 里面包含了哪些信息?
B2. 已知 A 网站在浏览器的 预置 HSTS 列表里,当用户在浏览器用 HTTP 方式尝试访问该网站的时候,服务器会不会收到这个 HTTP 请求?
B3. 为了增强安全性,老王给自己的服务器添加了 HPKP ( HTTP Public Key Pinning ) header 如下:
Header set Public-Key-Pins "pin-sha256=\"sha1/Q9rWMO5T+KmAym79hfRqo3mQ4Oo=\" ; max-age=2590000; includeSubDomains"
已知其中的 SPKI 指纹无误,而且客户端(最新 Chrome )确实接收到了此 Header,但是 chrome://net-internals/#hsts 里面经过查询,发现 HPKP ( dynamic_spki_hashes )并未生效,问题出在了哪里?
B4. 什么是 Mutual SSL ?举一个生活中常见的运用 Mutual SSL 的例子。
B5. Host A:
http://example.com/ Host B:
http://example.com:8080/ 对于大多数主流浏览器来说, Host A 设置的 Cookie Host B 能访问么?( Cookie 是否区分端口?)
以上基本上是我掉进去过的坑,希望对你有帮助