美文网首页
HTTP和HTTPS

HTTP和HTTPS

作者: Andy丫 | 来源:发表于2019-04-06 15:20 被阅读0次

    HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。

    一、HTTP协议的的特点

    1. HTTP协议是无状态的
      就是说每次HTTP请求都是独立的,任何两个请求之间没有什么必然的联系。但是在实际应用当中并不是完全这样的,引入了Cookie和Session机制来关联请求。
    2. 多次HTTP请求
      在客户端请求网页时多数情况下并不是一次请求就能成功的,服务端首先是响应HTML页面,然后浏览器收到响应之后发现HTML页面还引用了其他的资源,例如,CSS,JS文件,图片等等,还会自动发送HTTP请求这些需要的资源。现在的HTTP版本支持管道机制,可以同时请求和响应多个请求,大大提高了效率。
    3. 基于TCP协议
      HTTP协议目的是规定客户端和服务端数据传输的格式和数据交互行为,并不负责数据传输的细节。底层是基于TCP实现的。现在使用的版本当中是默认持久连接的,也就是多次HTTP请求使用一个TCP连接。

    二、常见HTTP的响应状态码

    1. 200 OK
      请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
    2. 3XX
      重定向异常。
    3. 400Bad Request
      • 语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
      • 请求参数有误。
    4. 403 Forbidden
      服务器已经理解请求,但是拒绝执行它。
    5. 404 Not Found
      请求失败,请求所希望得到的资源未被在服务器上发现。
    6. 405 Method Not Allowed
      不支持的方法
    7. 500 Internal Server Error
      服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
    8. 502 Bad Gateway
      作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
    9. 503 Service Unavailable
      由于临时的服务器维护或者过载,服务器当前无法处理请求。
    10. 504 Gateway Timeout
      作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。

    三、HTTPS的工作原理

    • (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
    • (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
    • (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
    • (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
    • (5)Web服务器利用自己的私钥解密出会话密钥。
    • (6)Web服务器利用会话密钥加密与客户端之间的通信。

    四、HTTP和HTTPS的区别

    HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

    HTTPS和HTTP的区别主要如下:

    1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    相关文章

      网友评论

          本文标题:HTTP和HTTPS

          本文链接:https://www.haomeiwen.com/subject/wweriqtx.html