Cooike http的头字段
Cooike的起源:购物车
Cooike的工作机制
Cooike的作用:1.会话管理:登录状态、购物车 2.个性化:用户偏好、主题 3.Tracking(追踪):分析用户行为
XSS(Cross-site scripting 跨站脚本攻击):HttpOnly 加上HttpOnly本地脚本看不到Cooike这些信息
XSRF(Cross-site request forgery 跨站请求伪造):Referrer 是从哪个网站跳转过来的。
Authorization http的头字段
Authorization:Basic<username:password(Base64ed)> 用户名密码信息
Authorization:Bearer(持票人) <bearer token>
OAuth2
OAuth2的流程
client_id是第一方识别是否为第三方用户的。client_id是第三方去第一方申请得到的。比如微信授权登录,那就
要到微信去申请client_id。
TCP/IP协议族
一系列协议组成的一个网络分层模型
为什么要分层?
因为网络不稳定,需要重传机制
1.客服端发送数据到服务端会经过一系列的中间节点。
2.如果传输过程中某个节点传输失败了就需要重传了。如果是反复重传,并且数据包又比较大的时候,就会降低
传输的速度。本来50毫秒可以传完的数据因为反复重传 最后2秒才传完。所以我们可以把数据分块传输,分块
从不同的节点路径进行传输那样速度就会快很多。
3.因为这个分块传输并不仅仅是http协议要这样做,其他的比如FTP文件传输的协议也需要分块传输。那样就把
分块传输的功能作为一层大家都可以共同使用。应用层只需要把需要传的数据直接丢给这个分块传输层就可以,
哪一块丢失没有传成功,这一层都会帮忙重传。使用消息id标记数据块保证数据的稳定可靠传输。这个是分层
的作用。
4.这一层叫TCP层。叫传输层。
5.有一些数据不是丢失了就要重传的。而是需要最新的数据就可以了。传出去即使丢失了没成功也不需要管。
这种的叫UDP,也是传输层的。
6.不管是TCP还是UDP都需要网络。他们不负责实际的传输,只负责数据的分块和重传。
7.还要再分出一层来专门进行传输的。这一层不需要知道数据的关系性,闷头把数据往目标地址传输就可以了
是否传成功也不需要管。这一层就叫IP层,网络层。IP层实际作用是寻址,路由。
8.数据需要传输就需要实际的线路,就有了数据链路层,双绞线连接起来的那些。以太网,WIFI,LINK。
数据链路层才是实际传输数据的。
TCP连接
什么叫做连接?
TCP建立连接与关闭
第一次:客户端发SYN同步字符跟服务端说,我要给你发消息了。
第二次:服务端收到客户端第一次发的消息之后,回复客户端ACK确认字符和SYN同步字符,意思
是跟客户端说,好的我知道你要给我发消息了,同时我也要给你发消息了。
第三次:客户端收到第二次服务端收到的消息之后,回复ACK确认字符说,好的我知道你要给我发了。
长连接:不释放的连接。强制不让关闭的连接。
为什么要长连接?
我们的手机都是运行在运营商的内网里面的。如果要跟外界通信就是要在内网的网关里面开一个端口
去跟外界通信的。是网关跟外界通信而不是实际的手机跟外界通信。开辟端口运营商那边是要耗费资
源的,那么运营商就会要省资源,怎么节省资源呢?我们占用的端口如果一段时间没有继续使用了,
那运营商就会去关闭那个端口。如果你要再次使用,运营商就再打开一个端口供使用。这就造成一个
问题,如果间隔一段时间后外网要再给我发消息或者是推送一些消息是发不过来的,因为运营商已经
把我之前使用的那个端口给关闭了。 这个时候我们就要跟外界建立一个长连接了,保持不被运营商给
关闭。怎么不被关闭呢?用的就是欺骗网关的方式,使用心跳。
长连接的实现方式:心跳。(每隔一段时间就用tcp发送一个没用的消息,网关检测到这个端口有消息
发送就不会关闭端口了。)
HTTPS
HTTP over SSL
SSL: Secure Socket Layer 或者 TLS : Transport Layer Secure
定义:在HTTP之下增加一个安全层,用于保障HTTP的加密传输
本质:在客户端和服务端之间协商出一个对称密钥,每次发送信息之前将内容加密,
收到之后解密,达到内容的加密传输。
HTTPS连接 这个过程是通过TCP的,不是通过HTTP
第一步:客户端请求建立TLS连接,(跟服务端说我要建立一个TLS连接)
第二步:服务端收到之后,服务器发回证书
第三步:客户端验证服务器证书
第四步:验证通过,客户端信任服务器后,和服务器协商对称密钥(用非对称加密协商)
第五步:使用密钥进行通信(这一步才是HTTP的)