HTTP与HTTPS是应用层的协议。
目录
一、HTTP
二、HTTPS
三、HTTP与HTTPs对比
四、HTTP/1.0 HTT/1.1 HTTP/2有什么区别
五、HTTP常用请求方法?get/post区别?
六、HTTP的工作过程
七、HTTPS的工作过程
八、Cookie、Session、Token
一、HTTP
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上,是万维网WWW(World Wide Web)的数据通信的基础。 《百度百科》
二、HTTPS
超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS)是以安全为目标的 HTTP 通道,在HTTP的基础上加入SSL,通过传输加密和身份认证保证了传输过程的安全性。
SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。 《百度百科》
三、HTTP与HTTPs对比
①HTTP 信息是明文传输(未加密),存在安全风险的问题。HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处理加密信息的模块。
②HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
③HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
四、HTTP/1.0 HTT/1.1 HTTP/2有什么区别
*下图来自公众号 小林coding
五、HTTP常用请求方法?get/post区别?
①GET请求用来从服务器获取数据(文本、页面、图片视频等),POST请求用来发送/提交数据(表示示向服务器申请创建新的资源或对已有的资源进行修改)。
②GET请求将请求参数拼接到URL上进行参数传递,而POST则是将请求参包装到HTTP报文的请求体(body)中。
③从请求的大小看,GET请求的长度受限于浏览器和服务器对URL长度的限制。
六、HTTP的工作过程
① 客户端首先通过DNS(域名系统)解析目标服务器的IP地址,然后通过TCP/IP协议与服务器建立连接。通常,连接使用的端口号是80(HTTP)或443(HTTPS)。
② 建立连接后,客户机发送一个请求给服务器。请求具有专门的请求格式和请求报文。
③ 服务器接到请求后,解析请求,根据请求方法和资源路径给予相应的响应信息。响应也有专门的格式与响应报文。
④ 客户端接收到服务器的响应后,解析响应内容。如果响应是一个HTML页面,浏览器会渲染并显示给用户。
⑤ 关闭连接。HTTP/1.0每个请求/响应后都会关闭TCP连接。HTTP/1.1允许在同一个TCP连接上发送多个请求和响应,从而提高效率。
七、HTTPS的工作过程
① 客户端输入一个HTTPS网址,浏览器会向目标服务器发起连接请求,指定使用HTTPS协议。
② 服务器收到请求后,会将SSL/TLS证书发送给客户端。
③ 客户端检查证书是否由可信的证书颁发机构(CA)签发,并确认证书是否在有效期内,证书中的域名是否与用户请求的域名匹配。如果证书不合法,浏览器会向用户发出警告。
④ 如果证书验证通过,使用会话密钥进行加密和解密。
⑤ 客户端和服务器通过加密的通道开始交换数据。所有通过HTTPS传输的数据都经过加密,确保数据的机密性、完整性和真实性。
⑥ 当通信完成后,客户端和服务器会终止SSL/TLS连接。这时,双方会销毁会话密钥,结束加密通信。
八、Cookie、Session、Token
http协议的每一次访问都是无状态的,也就是每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次请求的发送者是不是同一个客户端。需要一个状态用于告诉服务端前后两个请求是否来自同一个浏览器。这个状态就需要通过 cookie 或者 session 来实现。经常简单APP或者小程序询问是否允许授予权限(获取昵称、头像、地区、性别等个人信息)而实现授权的方式就是:cookie、session、token.
(1) Cookie由服务器发送到用户浏览器,并进行保存到本地,它会在浏览器下次向同一服务器再发起请求时被再一次被带到并发送到服务器上面。
(2) Session存储在服务器端,sessionId(session 的唯一标识信息) 会被存储到客户端的cookie 中。服务器拿到cookie中的信息后会取session中验证信息
(3) Token是访问资源接口(API)时所需要的资源凭证。Token 使服务端无状态化,不会存储会话信息。token可以用于标识用户身份、授权访问权限或传递安全信息。
Cookie 和 Session 的区别
安全性: Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。
有效期不同: Cookie 可设置为长时间保持,如默认登录功能,Session 一般有效时间较短,如某些网页版邮箱登上半小时没操作就会断开,提示重新登录。
存储大小不同: 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源。
存取值的类型不同:Cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。