HTTP与HTTPS(一)

HTTP

HTTP (HyperText Transfer Protocol,超文本传输协议):是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)

TCP/IP通信协议(传输控制协议/网际协议):指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

  • TCP协议:为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
  • IP协议:设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务

HTTP 与HTTPS

Https(Hyper Text Transfer Protocol over SecureSocket Layer):以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
工作原理:

  1. 使用https url访问服务器,要求简历ssl连接,连接到 server 的 443 端口。
  2. web服务端接收客户请求,返回网站证书(公钥) 客户端和服务器开始协商SSL的安全加密等级。
  3. 客户端浏览器通过协商好的安全等级,建立私钥,把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
  4. web服务器通过自己的私钥解密
  5. web服务器通过私钥加密与客户端的通信

两者的区别

安全性:

  • HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:用户密码、支付密码等信息。

  • HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS
    开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。(Https的SSL加密是在传输层实现的)

响应速度:

  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而
    HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

连接:

  • HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。
  • HTTPS 默认工作在 TCP 协议443端口。

资源:

  • HTTPS 需要到CA证书费用较高。
  • HTTPS 是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

三次握手:(待详解)
客户端和服务器都需要直到各自可收发,因此需要三次握手。
C发起请求连接S确认,也发起连接C确认我们再看看每次握手的作用:
第一次握手:S只可以确认 自己可以接受C发送的报文段
第二次握手:C可以确认 S收到了自己发送的报文段,并且可以确认 自己可以接受S发送的报文段
第三次握手:S可以确认 C收到了自己发送的报文段

HTTP 消息结构

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。

一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。

一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。

HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

在这里插入图片描述

HTTP 请求消息

方法描述
HEAD类似于get请求,只不过返回的响应中没有具体的内容,用户获取报头
GET请求指定的页面信息,并返回实体主体
POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
PUT从客户端向服务器传送的数据取代指定的文档的内容。
DELETE请求服务器删除指定的页面
OPTIONS允许客户端查看服务器的性能,比如说服务器支持的请求方式
CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
TRACE回显服务器收到的请求,主要用于测试或诊断。
PATCH是对 PUT 方法的补充,用来对已知资源进行局部更新 。

HTTP 状态码

状态码含义
200请求成功
301资源(网页等)被永久转移到其它URL
400产生原因:前端提交数据的字段名称和字段类型与后台的实体没有保持一致,前端提交到后台的数据应该是json字符串类型,但是前端没有将对象JSON.stringify转化成字符串。解决方法:对照字段的名称,保持一致性,将obj对象通过JSON.stringify实现序列化
401当前请求需要用户验证
403服务器已经得到请求,但是拒绝执行
404请求的资源(网页等)不存在
500内部服务器错误

HTTPS的优缺点

优点:

  • https可以提供更加优质保密的信息,保证了用户数据的安全性,此外https同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。
  • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

缺点:

  • https握手阶段比较费时,会使页面加载时间延长50%,增加10%~20%的耗电。
  • https缓存不如http高效,会增加数据开销。
  • SSL证书也需要钱,功能越强大的证书费用越高。
  • SSL证书需要绑定IP,不能再同一个ip上绑定多个域名,ipv4资源支持不了这种消耗。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值