面试之计算机网络

69 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情

请你说一下对http和https的理解

http协议又称超文本传输协议,是互联网上英语最为广泛的一种传输协议,它是以明文方式传输报文,所以如果有不发分子截取了Web浏览器和服务器之间的传输报文,就可以直接获得信息,可想而知,这是不安全的。

https可以认为是http的安全版,是在http协议基础上加入了SSL协议,https中的s指的就是SSL协议,这一层协议加在TCP/IP协议应用层之间,它可以对通信数据进行加密、验证身份,使得通信更加安全。不过这个安全不是绝对安全,只是增加不法分子的破坏成本。

简单介绍一下SSL协议 SSL协议全称是Secure Sockets Layer,又称安全套接字协议,主要功能是提供私密性,信息完整性和身份认证

SSL协议体系如下图: image.png 其中最重要的是记录协议和握手协议:

  • SSL记录协议:它建立在可靠的传输(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
  • SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始之前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

点击此处进一步了解SSL协议

http和https的区别

  1. 端口号不同:https端口号是443,而http的端口号是80
  2. http明文传输,而https是用SSL进行加密,安全性更高
  3. https要申请CA证书,需要一定费用,而http不需要
  4. http协议速度要比https更快,这是因为https需要经过复杂的SSL加密过程,页面响应速度慢一些

GET、POST的区别

GETPOST,两者都是HTTP协议中发送请求的方法

GET方法请求一个指定资源的表示形式,使用GET的请求一般用于请求网页的静态资源,对资源进行缓存无副作用

POST方法用于将实体提交到指定的资源,使用POST请求一般是提交表单或变更状态,数据提交到服务器,让服务器做一件事情,得到一个返回结果的网页,有副作用(有副作用的意思是POST请求不能随意提交)

相同点:本质上都是TCP链接,并无差别

不同点:

  • 安全性:POST安全性更高,因为GET参数通过URL传递,而POST放在Request body中,GET参数直接暴露在URL上,所以不能用来传递敏感信息或者发送密码。

    好比下面我在Google中搜索前端找的到工作吗,我们输入的数据会被反映到URL中,设想一下,如果当我们登录时,输入我们的账号和密码,也被别人看到,那不就什么隐私、什么安全都没有了

image.png image.png

  • 数据长度的限制:当发送数据时,GET 方法向 URL 添加数据,而URL的长度是受限制的,URL 的最大长度是 2048 个字符;POST无限制

  • 后退按钮/刷新:当点击浏览器的后退或者刷新时,GET请求无影响,而POST的数据会被重新提交

  • 缓存:GET请求会被浏览器缓存,而POST请求不会被浏览器缓存