http和https的区别

  1. HTTP与HTTPS有什么区别?

    答:

    • HTTP协议是超文本传输协议,它是基于TCP协议之上的应用层协议,是无状态短连接的。HTTPS协议是HTTP的安全升级版,传输数据基于SSL协议,可以进行服务器认证以及数据加密。

    • HTTP协议是明文传输,HTTPS是密文传输。

    • HTTP协议默认端口号是80,HTTPS协议默认端口号是443。

    • HTTPS协议需要申请CA证书

  2. HTTP1.0和HTTP1.1的区别?

    答:HTTP1.0是短连接,每次请求-响应后都会断开连接;HTTP1.1是长连接,可以进行多次请求-响应,服务器需要设置一个时间间隔,一段时间没有接收到HTTP请求消息的连接就会断开。

  3. 为什么说HTTP是无状态协议?

    答:对于事务处理没有记忆功能;对同一个url请求没有上下文关系;每次请求都是独立的;服务器中没有保存客户端的状态。

  4. 常见的HTTP操作命令有哪些?

    答:

    • GET——读取页面
    • POST——向服务器传输附加信息
    • PUT——写入页面
    • HEAD——读取页面头部
    • DELETE——删除页面
    • CONNECT——通过代理连接
    • TRACE——将客户端发送的请求发回
    • OPTIONS——请求可用选项的信息
  5. 常见的HTTP三位代码?

    答:

    • 200——成功:OK
    • 202——成功:已接受
    • 301——重定向:永久迁移
    • 400——客户端错误:错误请求
    • 404——客户端错误:未找到
    • 502——服务器错误:错误网关
    • 503——服务器错误:服务器不可用
  6. HTTP协议格式?

    答:

    • 请求报文
      • 请求行:请求方法 URL HTTP版本
      • 请求头
      • 空行
      • 请求体
    • 响应报文
      • 状态行:HTTP版本 状态码 响应结果的原因
      • 响应头
      • 空行
      • 响应体
  7. Request中包含了哪些内容?

    答:

    • 请求方式
      • GET:向指定资源发出显示请求,使用GET方法读取数据
      • POST:向指定资源提交数据,请求服务器进行处理
      • HEAD:与GET方法一样,向服务器发出指定资源的请求,服务器将不传回资源的文本部分
      • PUT:向指定资源位置上传最新内容
      • OPTIONS:使服务器传回该资源所支持的所有HTTP请求方法。可以测试服务器功能是否正常运行
      • DELETE:请求服务器删除Request-URL所标识的资源
    • 请求URL
      • URL(统一资源定位符)组成
        • 协议(服务方式)
        • 存有该资源的主机IP地址、端口号
        • 主机资源的具体地址(目录或者文件夹)
    • 请求头
      • Accept:指定客户端能够接收的内容类型
      • Accept-Charset:浏览器可以接受的字符编码集
      • Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型
      • Accept-Language:浏览器可以接受的语言
      • Connection:表示是否需要持久连接(keep-alive)
      • User-Agent:包含发出请求的用户信息
      • Host:指定请求的服务器的域名和端口号
      • Cache-Control:指定请求和响应遵循的缓存机制
      • Cookie
    • 请求体
  8. Response中包含了哪些内容?

    答:

    • 响应状态:200代表成功,301代表跳转,404代表找不到页面,502代表服务器错误
    • 响应头
      • Content-Language:响应体的语言
      • Content-Length:响应体的长度
      • Content-Type:返回内容的类型
      • Set-Cookie:设置http cookie
      • Expires:响应过期的日期和时间
      • Server:web服务器软件名称
      • Warning:警告实体可能存在的问题
    • 响应体(包含请求资源的内容,如网页HTML、图片和二进制数据)
  9. GET方法和POST方法的区别?

    答:

    • 报文格式不同
      不带参数时,HTTP请求首行不同;
      带参数时,GET方法的参数放在URL中,POST方法参数请求体中;

    • 缓存(Cache)

      GET方法提交能被缓存,而POST不能被缓存;GET提交的参数能被保留在浏览器历史,而POST不能

    • 安全性

      与POST相比,GET的安全性较差,因为所发送的数据是URL的一部分,在地址栏上就可见;相对而言,POST方式更加安全,因为参数不会被保存在浏览器历史或web服务器日志中,但真正的安全性来讲,GET和POST都是不安全的,因为HTTP在网络上传输是明文的,要想安全传输,就得加密,也就是用到HTTPS;

    • 对数据长度的限制

      GET提交时把数据放在URL中,而URL长度受到一定的限制;而POST把数据放在请求体中,对数据长度没有限制,所以传输较大数据用POST请求方法;【在HTTP协议的标准文档中,并没有限制URL的长度,对URL长度的限制是来源于浏览器和服务器,服务器对URL的限制考虑于处理较长的URL要消耗较多的资源,考虑到性能和安全】

    • 对数据类型的限制

      由于GET方式的数据放在URL中,所以只允许ASCII字符;而POST方式对数据没有限制,数据存放在请求体中,在POST提交中,请求头Content-Type指定请求体的类型

  10. Cookie和Session有什么区别?

    答:

    • cookie的数据存储在浏览器,而session存放在服务器,如果并发量较大,使用session会造成服务器压力过大
    • cookie只能保管ASCII字符串,而session中能够存取任意类型的数据
    • session的运行依赖session id,而session id 存放在cookie中,如果浏览器禁用了cookie,session就会失效
    • 单个cookie的存储容量以及cookie的存储个数有限制
    • 安全性不同,cookie的安全性比seesion差
  11. Cookie过期如何处理?

    答:自定义一个异常类,如果有异常,Cookie抛出异常类再执行程序。

  12. HTTPS如何实现数据安全传输?

    答:HTTPS是在HTTP和TCP之间多加了一层加密层TLS/SSL。SSL负责对HTTP的数据进行加密,TLS是SSL的升级版。应用层将数据传输给TLS/SSL,将数据加密后,再给TCP进行传输。

  13. HTTPS有什么优缺点?

    答:

    • 优点
      • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户端和服务器
      • HTTPS协议由HTTP+SSL协议构建的,可进行加密传输、身份认证,比HTTP协议安全,可防止数据在传输的过程中被窃取、改变,从而确保数据的完整性
      • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但大幅增加了中间人攻击的成本
    • 缺点
      • HTTPS协议的加密范围有限,在黑客攻击、拒绝服务攻击及服务器劫持等方面几乎起不到什么作用
      • HTTPS协议会影响缓存,增加数据开销和功耗
      • SSL证书需要支付费用,功能越强大的证书费用越高
      • HTTPS连接服务器端资源占用多,握手阶段比较费时,对网站的响应速度有影响
      • HTTPS连接缓存不如HTTP高效
  14. 对称加密和非对称加密?

    答:

    • 对称密钥加密,又称私钥加密,信息的发送方和接收方用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。
    • 非对称密钥加密,又称公钥加密,需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。
posted @ 2020-07-13 21:11  guguda  阅读(175)  评论(0)    收藏  举报