HTTP和HTTPS

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)