HTTP、FTP、TCP/IP、TCP、UDP、IP、DNS
TCP/IP协议是一个协议集合。大家叫的时候方便说,所以统称为TCP/IP。TCP/IP协议族中有一个重要的概念是分层,TCP/IP协议按照层次分为以下四层。应用层、传输层、网络层、数据链路层、(物理层 有些地方分5层)
HTTP、FTP、DNS是应用层的协议,如何包装数据,如下文有HTTP请求响应内容
TCP、UDP是传输层协议 三次握手,UDP直接给你对不对拉倒
IP协议 网络层
简单认识TCP/IP协议
TCP/IP、Http、Socket的区别
HTTP请求响应内容:get post不同 response
Referer(post) 请求来自哪个页面,它可以用来做统计工作,也可以用来做防盗链。
Content-Type: application/x-www-form-urlencoded:表单的数据类型,说明会使用url格式编码数据
HTTP之请求响应内容详解
HTTP、HTTPS
HTTP发送方式:根据HTTP协议,封装数据->TCP->IP
HTTPS发送方式:根据HTTP协议,封装数据 + 加密->TCP->IP
如何加密:
先向服务器拿证书,包含公钥、怎么加密的内容(算法、算法选取的基本数据)
拿到后加密,接收方接受后解密(常用算法RSA、ECC )
非对称加密+对称加密
既然非对称加密耗时,非对称加密将对称加密私钥进行传输后,之后的数据加密解密都是用对称加解密
过程:
某网站拥有用于非对称加密的公钥A、私钥A’。
1浏览器向网站服务器请求,给一个随机数r1,服务器把证书给给浏览器,附加一个随机数r2。
2浏览器验证证书是否可信,若可信生成随机数r3,用证书里的公钥A加密后传给服务器。
3服务器拿到后用私钥A’解密得到随机数r3,两方都将r1 r2 r3结合生成一个对称加密的密钥X。
4这样双方就都拥有密钥X了,且别人无法知道它。之后双方所有数据都用密钥X加密解密。
第二步中如何验证证书是否可信?
则需要第三方权威机构,简称CA,将这个公钥A签名成证书,
证书内容:
lssuer颁发者
Subject:颁发给谁
Validity:证书期限
Public-key:Subject的公钥
Signature Algorithm:签名算法和值(sha256WithRSAEncryption)
想验证该证书是否可信任,若lssuer在可信任列表里则直接放回,否则用lssuer的Public-key解密Signature Algorithm,判断与当前信息的sha256值是否相同,
要lssuer的Public-key,就要lssuser的证书,又要判断该证书是否可信任,直到有根证书可信任
证书链例如:
*.baidu.com、GlobalSign Organization Validation CA和GlobalSign Root CA
DNS
域名解析成ip的协议,过程:

使用传输层协议:TCP、UDP,占用53端口
- DNS区域传输的时候使用TCP协议:
1.辅域名服务器会定时(一般3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。区域传送使用TCP而不是UDP,因为数据同步传送的数据量比一个请求应答的数据量要多得多。
2.TCP是一种可靠连接,保证了数据的准确性。
- 域名解析时使用UDP协议:
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。理论上说,客户端也可以指定向DNS服务器查询时用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。
相关阅读趣谈网络协议:
第9讲 路由协议
第11、12讲 TCP协议
第14、15讲 HTTP、HTTPS协议
第16讲 流媒体协议
第17讲 p2p协议
第18讲 DNS协议
第23讲 移动网络