持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
请你说一下对http和https的理解
http协议又称超文本传输协议,是互联网上英语最为广泛的一种传输协议,它是以明文方式传输报文,所以如果有不发分子截取了Web浏览器和服务器之间的传输报文,就可以直接获得信息,可想而知,这是不安全的。
https可以认为是http的安全版,是在http协议基础上加入了SSL协议,https中的s指的就是SSL协议,这一层协议加在TCP/IP协议和应用层之间,它可以对通信数据进行加密、验证身份,使得通信更加安全。不过这个安全不是绝对安全,只是增加不法分子的破坏成本。
简单介绍一下SSL协议 SSL协议全称是Secure Sockets Layer,又称安全套接字协议,主要功能是提供私密性,信息完整性和身份认证。
SSL协议体系如下图:
其中最重要的是记录协议和握手协议:
- SSL记录协议:它建立在可靠的传输(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
- SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始之前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
http和https的区别
- 端口号不同:https端口号是443,而http的端口号是80
- http明文传输,而https是用SSL进行加密,安全性更高
- https要申请CA证书,需要一定费用,而http不需要
- http协议速度要比https更快,这是因为https需要经过复杂的SSL加密过程,页面响应速度慢一些
GET、POST的区别
GET和POST,两者都是HTTP协议中发送请求的方法
GET方法请求一个指定资源的表示形式,使用GET的请求一般用于请求网页的静态资源,对资源进行缓存无副作用
POST方法用于将实体提交到指定的资源,使用POST请求一般是提交表单或变更状态,数据提交到服务器,让服务器做一件事情,得到一个返回结果的网页,有副作用(有副作用的意思是POST请求不能随意提交)
相同点:本质上都是TCP链接,并无差别
不同点:
-
安全性:POST安全性更高,因为GET参数通过URL传递,而POST放在Request body中,GET参数直接暴露在URL上,所以不能用来传递敏感信息或者发送密码。
好比下面我在Google中搜索
前端找的到工作吗,我们输入的数据会被反映到URL中,设想一下,如果当我们登录时,输入我们的账号和密码,也被别人看到,那不就什么隐私、什么安全都没有了
-
数据长度的限制:当发送数据时,GET 方法向 URL 添加数据,而URL的长度是受限制的,URL 的最大长度是 2048 个字符;POST无限制
-
后退按钮/刷新:当点击浏览器的后退或者刷新时,GET请求无影响,而POST的数据会被重新提交
-
缓存:GET请求会被浏览器缓存,而POST请求不会被浏览器缓存