网络相关知识
三次握手四次挥手
- 三次握手
- 首先 客户端 发送 SYN=1 seq=x 请求建立连接,服务端收到请求后 回复 SYN=1 ACK=1 seq=y ack=x+1 可以建立连接 客户端收到 回复后 发送 ACK=1 seq=x+1; ack=y+1 服务器收到后两者建立一个完整的TCP连接
- 四次挥手
- 当客服端发起FIN=1 squ=u时的关闭请求时,由于服务端数据不一定已经完成传输了,这个时候只能发送一个ACK 确认收到请求,但是不能立马关闭,客户端进入FINWAIT等待,当服务端发送FIN的请求的时候客户端回复并等待2MSL 之后关闭连接
请求行 请求头 请求体
常用的请求头 包括
User_Agent
Content-type
Content—length
Cookie
Cache-Control
Accept_language
Connection
Host
Accept_Encode
状态码
HTTP的响应状态码由5段组成:
- 1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急…
- 2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
- 3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
- 4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
- 5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
响应头
网络七层协议
URL如何访问到服务器的
URL 叫做统一资源定位符 格式是 协议://服务器地址(带端口)/具体资源路径
首先 DNS会解析域名得到IP地址,IP地址就和我们的家庭住址一样,
那么就能顺着ip找到对应的服务器,再根据资源地址寻找我们要找的资源
Https
Https比Http多了一层SS证书层,SSL用来验证身份以及解密
数据,SSL是非对称加密方式,在数据传递的时候使用公钥对数据进
行加密,服务器收到数据请求之后,校验公钥 然后用私钥对数据进行解密。
-
SSL证书里面包含了 证书的发布机构 域名 有效期 签名 公钥等数据!
-
Https如何建立链接?
是建立在TCP链接的基础之上的。 http://www.sohu.com/a/305717214_604699
在使用HTTPS是需要保证服务端配置正确了对应的安全证书
-
客户端发送请求到服务端
-
服务端返回公钥和证书到客户端
-
客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端
-
服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密
-
客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户
SSL加密建立
参考:https://yq.aliyun.com/articles/615323
https://www.cnblogs.com/zxh930508/p/5432700.html
https://www.cnblogs.com/lzq198754/p/5780310.html
http://www.cnblogs.com/wyangnb/p/5394262.html
https://baike.baidu.com/item/SSL证书/5201468?fr=aladdin
https://mp.weixin.qq.com/s/xU8X2gF_M_9_qzqbBdr4xQ
https://www.cnblogs.com/liyuhui-Z/p/7844880.html //https如何建立链接