Http和Https相关问题

Http和Https

Http(默认端口号80)

超文本传输协议(Http,HyperText Transfer Protocol)是互联网上使用最为广泛的一种网络协议(应用层)。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

Http请求报文结构

  • 请求行:请求方法、URL、协议版本号、回车符
  • 请求头部:设置Http请求的各种参数
  • 空行:必须的空行,表示请求头部的结束
  • 请求正文:携带上传的数据,主要是POST请求

Http响应报文结构

  • 状态行:协议版本、状态码、状态码描述
  • 响应头部:说明客户端使用的一些附加信息,如date、content-type
  • 空行
  • 响应正文:返回的数据

请求/响应的步骤

  • 客户端连接到Web服务器
  • 发送Http请求
  • 服务器接受请求并返回Http响应
  • 释放TCP连接
  • 客户端浏览器解析HTML内容

URL到页面的过程

  • DNS(Domain Name System,域名系统)解析
  • 建立TCP连接
  • 发送Http请求
  • 服务器处理请求并返回Http报文
  • 浏览器解析渲染页面
  • 连接结束

详细过程可参考 https://www.cnblogs.com/xianyulaodi/p/6547807.html

GET和POST的区别

  • Http报文层面:GET将请求信息放在URL中,POST放在报文体中
  • 数据库层面:GET请求符合幂等性(多次操作和一次操作的结果一致)和安全性(不会对数据库进行修改),POST不符合
  • 其它:GET可以被缓存、被存储,POST不行

Https(默认端口号443)

是以安全为目标的HTTP通道,也就是安全版的HTTP,通过在HTTP下加入SSL层来提供安全传输支持。Https的主要作用包括:建立信息安全的通道,保证数据的安全传输以及确认网站的真实性。

什么是SSL?

SSL(Security Sockets Layer, 安全套接层),为网络通信提供安全以及数据完整性的一种安全协议,SSL位于TCP与各应用层之间,是操作系统对外提供的API,SSL3.0版本以后被称为TSL。主要通过身份验证和数据加密保证网络通信的安全和数据的完整性。

Https数据传输流程

  • 浏览器将支持的加密算法信息发送给服务器
  • 服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
  • 浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
  • 服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器
  • 浏览器解密响应消息,并对消息进行验真,之后进行加密交互数据

Http和Https的区别

HTTP HTTPS
HTTP HTTP
TCP SSL or TSL
IP TCP
。。。 IP
  • Https需要到CA申请证书,Http不需要
  • Https密文传输,Http明文传输
  • 连接方式不同,使用的端口号不同
  • Https更安全

猜你喜欢

转载自www.cnblogs.com/sasworld/p/11516758.html
今日推荐