http与https

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mccree1997/article/details/79814866

http,即超文本传输协议,最初的目的是为了提供一种发布和接收HTML页面的方法。

首先一个http请求包含请求行、请求头部、空行和请求数据

一个http响应包含消息报头、空行、响应正文

定义在http1.0的方法有get、post、head三种方法

  1. get:向特定资源发起请求
  2. post:向指定资源提交数据进行数据处理。数据包含在请求体内,post请求可能用于新的资源的创建和已有资源的修改
  3. head:没有返回体,用来获取包含在响应头中的信息

特性

  • http是无连接的,每次连接只处理一个请求,服务器处理完成后,在收集到客户端的应答后断开连接
  • http只要客户端和服务器端知道如何处理数据类型,任何数据都可以通过http协议进行传输
  • http协议对于事物处理没有记忆能力

那么什么是https,https(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道。即在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容是SSL。同时在浏览器还要申请CA证书。http和https使用完全不同的连接方式,且http使用的端口号是80,后者是443.

那么我们要知道通过一个HTTP请求访问一个网站的全过程

  1. 第一步,当用户输入URL的时候,DNS服务器会启动域名解析,将域名解析成IP地址,返回给客户端
  2. 客户端就在本机内进行域名解析,如果找不到这个IP则会去WEB服务器上查询,(默认80端口)之后返回web资源

那么通过HTTPS呢?

  1. 首先客户端会先服务器发送一个https的连接请求,服务器端会返回给客户端一个公钥
  2. 之后客户端会对称加密,产生一个随机数,这个随机数就是对称密钥
  3. 再使用公钥对对称密钥加密
  4. 发送加密后的对称密钥给服务器端
  5. 之后通过对称密钥加密的密文通信

通过上面几个步骤我们就可以看出,客户端产生的随机数只有客户端和能够解密的服务器端才有,这样的通信,可以说的非常安全的,但不是绝对的

阅读更多
换一批

没有更多推荐了,返回首页