http,https

137 阅读3分钟

SSL是什么?

SSL是https,不是只能用在http上,http协议数据在互联网中传输不是安全的。

  • 没有保密性,可能被窃取。
  • 身份不确定。 加密,解决信息的保密性。 java加密方式:
  • MD5(认证,不能加密)
  • BASE64(没有起到真正加密)
  • AES(对称加密,使用同一个秘钥,加密,解密)
  • RSA(非对称加密,生成秘钥是,加密解密使用的是不同的秘钥)

什么是http协议:

  • TCP/IP 1971
  • SMTP 收发邮件 1971
  • FTP 传输文件 1971
  • Telnet 远程登录
  • HTTP(Hypertext Transfer Protocol) 超文本传输协议(允许用户链接访问网页) HTML,超文本标记语言(统一网路访问、交流的语言)。 URL,统一资源定位符。 Web浏览器:www浏览器。 Web服务器:info.cern.ch

www标准.png

http请求方式.png

HTTP请求格式

  • 请求行: POST(请求方法)/article/1001.html HTTP 1.1(HTTP协议版本)

  • 请求头:

      Accept image/jpeg, application/x-ms-application,...,(接受的响应数据类型)
      Referer: http://localhost:8080/article/1000.html(从哪个地址发起的请求)
      Accept-Languce:zh-CN(接受的语言)
      UserAgent: MoziIIa/4.0(浏览器类型)
      Content-Type: application/x-www-form-urlencode(发出的数据类型)
      Host:localhost:8080(发起请求的主机地址)
      Content-Length:112(发起请求的数据长度)
      Connection:Keep-Alice(连接状态)
      Cache-Control:n0-cache(缓存配置)
      Cookie:XXXXXXXXXXXX
    
  • 请求头:name=wuya&password=123456

HTTP响应格式

  • 响应头: 协议、版本,200(状态码),OK(描述)
  • 响应头:
  server:nginx1.8(服务器类型)
  Content-Type:(application/json)(响应类型)
  Transfer-Encoding:chunked(编码方式)
  Date:Fir, 14 May 2021 14:48:22 GMT
  • 响应体:

Http响应状态码

1XX:信息,服务器收到请求,需要请求者继续执行操作
2XX:成功,操作被成功接收并处理
3XX:重定向,需求进一步的操作以完成请求
4XX:客户端错误,请求包含语法错误或无法完成请求
5XX:服务器错误,服务器在处理请求的过程中发生错误。

Http特定.png http不安全

  1. 泄露(没有加密,明文传输,抓包工具可以获得,可能被窃听)
  2. 篡改(修改传输的信息,比如修改银行卡号)
  3. 冒充(不能验证通信双方的身份) 解决:
  • 加密:比如:

加密.png 计算机底层只有1和0,加密就是经过计算位移得到新的字符串

下面如何解决密钥传输的问题? 1、密钥的私密性问题 2、秘钥的存储、管理

  • 解决办法就是:非对称加密算法

非对称秘钥.png

非对称秘钥2.png 非对称加密算法计算变慢了。传输过程中,公钥被黑客替换(接收到的公钥不够权威),解决办法数字证书。证明公钥的公信力和权威性。

https证书.png https的证书是要收费的。

https指纹.png

222.png

https

证书颁发机构,安装在了操作系统中,如果没有安装,则会弹出警告。 333.png 非对称加密,认证,密钥是可用的,对称加密用来通信,双方协商一个会话密钥,流程如下:

444.png SSL/TLS协议,由网景公司(Netscape)提出

555.png

666.png