第七题:http和https

48 阅读2分钟

http和https是什么

http(超文本传输协议)、https(超文本传输安全协议)是用于互联网数据传输的协议。都是应用层协议,建立在TCP/IP协议簇之上,用于客户端和服务器直接的通信。

HTTP协议

http是一种无状态协议,用于传输文本。他定义了客户端如何请求服务器上的资源,以及服务器如何相应这些请求。

HTTPS协议

同字面上一样超文本传输安全协议多了安全二字,https协议是http协议的安全版本,通过在http协议的基础上加入SSL/TLS安全层提供数据加密和身份验证的功能。

区别

  • http是明文传输数据,任何人都可以窃取、篡改数据。https通过SSL/TLS协议对数据进行加密,确保数据在传输过程中的安全性和完整性。服务器通过SSL/TLS证书进行身份验证,防止中间人攻击‌。
  • http由于没有加密,传输快、资源消耗小。https多了加密过程传输慢、消耗大。
  • http默认端口是80。https默认端口是443。
  • https协议需要ca证书,费用较高。

HTTP事务

  1. DNS域名解析
  2. TCP三次握手、四次挥手
  3. 浏览器发起HTTP请求
  4. 服务器解析、处理、相应HTTP请求。浏览器得到HTML代码
  5. 浏览器解析HTML代码,请求资源(js、css、图片)
  6. 浏览器进行页面渲染,呈现给用户

常用HTTP协议状态码

  • 2XX 成功
    200 OK,表示从客户端发来的请求在服务器端被正确处理
    204 No content,表示请求成功,但响应报文不含实体的主体部分
    206 Partial Content,进行范围请求

  • 3XX 重定向
    301 moved permanently,永久性重定向,表示资源已被分配了新的 URL
    302 found,临时性重定向,表示资源临时被分配了新的 URL
    303 see other,表示资源存在着另一个 URL,应使用 GET 方法丁香获取资源
    304 not modified,表示服务器允许访问资源,但因发生请求未满足条件的情况
    307 temporary redirect,临时重定向,和302含义相同

  • 4XX 客户端错误
    400 bad request,请求报文存在语法错误
    401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息
    403 forbidden,表示对请求资源的访问被服务器拒绝
    404 not found,表示在服务器上没有找到请求的资源

  • 5XX 服务器错误
    500 internal sever error,表示服务器端在执行请求时发生了错误
    503 service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求