HTTP与HTTPS
昨天在面试里被问到了关于HTTP和HTTPS的问题,作为一个计网的渣渣,只记得HTTP是超文本传输协议,基于TCP/IP,被问到HTTPS的时候脑子一片空白,只记得平常浏览器里HTTPS好像说是安全,还是我太菜,至于HTTP能不能基于UDP,我只能跟着感觉走了,啊,估计是凉凉了
HTTP
首先,HTTP就是超文本传输协议,是我们平常使用Web的时候最基本的协议。他所要做的,从总体上看其实就是当客户端想要访问某一个页面时,客户端向服务器发送一个http request请求获取相应的文件或者对象,服务器端收到请求后,会将对应的资源发送给客户端,客户端获得资源后,用本地的浏览器将其显示出来。
- HTTP基于TCP,而不是UDP
我们知道UDP是不可靠的连接,因为他不会关心数据发送后,接收方是否有准确地接收到数据,他只管发送,但是对于HTTP来说,他是不允许丢包的,他需要依赖可靠的数据传输,所以HTTP是基于TCP,而不能基于UDP。 - HTTP无状态
无状态的意思就是HTTP不会保存历史状态信息,用我之前在其他博客里看到的一句话说就是,访问一个网站需要反复进行登录操作。这个时候,我们会觉得,不对呀我登录的时候已经记住了密码,完全就不需要自己输入,这些信息其实是通过Cookie实现的。可以通过HTTP报文,去设置Cookie号,服务器端会记录下ID,以及对应的历史信息。
- 坚持/非坚持的HTTP
我们已经提到过HTTP是基于TCP的协议,而TCP又是面向连接的,所以当我们要使用HTTP之前需要先建立TCP连接,而我们经常会碰到需要从服务器下载多个对象或文件的情况,而坚持与非坚持的区别就是:非坚持的HTTP,在下载完一个对象或文件后就关闭了连接,如果还需要继续下载其他的资源,则需要重新建立连接。那么,显而易见,坚持的HTTP则是指连接建立好之后,我们可以一次性下载多个对象或文件,再将连接关闭。非坚持的HTTP显然会浪费时间。
HTTPS(来源于百度百科)
由于HTTP存在一些安全缺陷,极易遭受攻击,用户的信息安全得不到很好的保障,所以为了提高传输的安全性人们对HTTP做出了改善,出现了HTTPS。
HTTPS为超文本传输安全协议,他其实就是在HTTP的基础下,加入SSL层。换句话说就是,在HTTP的基础上通过传输加密和身份认证加强传输过程的安全性。但是HTTP不能保证绝对的安全性,只是在某一些方面加强了安全性。
- 数据保密性
保证数据在传输的过程中,不会被第三方查看,好比我们寄快递,但是快递员不能查看我们的包裹内容是一样的 - 数据完整性
保证我们能够及时发现数据在传输的过程中是否被篡改,好比我们在接收快递时能够及时发现包裹内容是否被掉包,发现后可立即拒收 - 身份校验安全性
保证数据没有发送给错误的接收方,好比我们发快递,需要确保包裹没有发送错地方
对于HTTPS具体如何加密,后续如果需要再更新