引入(摘自百度百科)
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 .

Http

Http协议是请求与响应模式,也就是说一般情况下,是客户端主动发起请求而服务器响应客户端发送的请求,如果服务器主动给客户端发送消息需要利用长连接,比如直播、即时通讯等等。

Http协议的请求报文分为三部分get请求是没有body的而是URL拼接的方式传递
请求报文
1.起始行
2.报文头
3.报文体

响应报文
1.起始行
2.响应头
3.响应体

起始行 包括 请求方式(GET/POST) 、请求URL、与协议版本
头部段 包括 Header值一般用于传递公共参数 键值对的方式
body 包括接口返回的数据,或者POST请求入参的参数

Http返回状态码

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

http协议栈

第一层 http协议
第二层 TCP传输层
第三层 IP层
第四层 数据链路层
第五层 物理层

http特性

1.无连接(优点) 2.无状态(优点) 3.应用层(优点) 4.明文传输(缺点) 5.不安全(缺点)

无连接:每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况

无状态:HTTP无状态协议,是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

Cookie & Session

客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。

Cookie:是通过客户端保持状态的解决方案。从定义上来说,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。

Session:Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。

http一次事务(会话)

1.建立连接 2.发起请求 3.响应请求 4.断开连接

HTTP协议由于是明文传送,所以存在三大风险:

1、被窃听的风险:第三方可以截获并查看你的内容
2、被篡改的危险:第三方可以截获并修改你的内容
3、被冒充的风险:第三方可以伪装成通信方与你通信

HTTP因为存在以上三大安全风险,所以才有了HTTPS的出现。

Http的请求方式

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

Https

HTTPS协议的特性:

1.HTTP与HTTPS是完全不同的连接方式,两者所用的端口也不一样,HTTP是80而HTTPS是443

2.HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

3.HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

4.HTTP协议的速度比HTTPS更快,但也更不安全

5.HTTPS 降低一定用户访问速度。

6.HTTPS 消耗 CPU 资源,需要增加大量机器。

https协议栈

如图可以发现 https相较于http协议多了一层 SSL/TLE安全层 那么SSL/TLS协议的主要作用是什么呢?

SSL/TLS协议的主要作用就是:

 1.认证用户和服务器,保证各自的数据都发送到正确的位置上去。2.对发送的数据进行加密,保护数据。3.保证数据在发送过程中的完整性。

什么是CA

CA认证,即电子认证服务 [1] ,是指为电子签名相关各方提供真实性、可靠性验证的活动。

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

https三次握手 及 如何保证数据安全

1,客户端将SSL 协议的版本号、加密算法的种类,产生的随机数A等信息传给服务器
2,服务器选择其中的一种组合作为加密方式,同时将自己的证书、公钥、另外一个随机数B一起传给客户端
3,客户端验证服务器返回的信息(包括证书,签名,域名等),验证成功,则生成对称加密密钥S,用公钥加密后返回给服务器
4,服务器用私钥将这段密钥解密。得到对称密钥S,并用此密钥加密一段握手消息返回给客户端
5,客户端收到握手消息,用对称密钥解密,验证成功,则握手成功。

证书验证

为什么不用对称加密与客户端连接?

因为服务器是与多个客户端进行连接,如果使用对称加密,则服务器会持有很多的对称加密的秘钥,所以利用非对称加密,服务器自己持有私钥,将自己的公钥公布出去,让别人拿着公钥加密数据,利用对应的私钥解密,从而提高效率。

Https通过md5来保证数据的完整性

第一次写博客,写的不好多多见谅,感谢观看!

Http协议及Https协议及特性的简单描述相关推荐

  1. 网络编程知识预备(4) ——了解应用层的HTTP协议与HTTPS协议

    参考:简单了解HTTP协议与HTTPS协议 作者:丶PURSUING 发布时间: 2021-03-15 10:55:13 网址:https://blog.csdn.net/weixin_4474282 ...

  2. 在Tomcat下http协议转https协议

    Tomcat下http协议转https协议,在腾讯云下载的免费SSL证书 最近在搞微信小程序的支付问题,但是调用支付接口的规则是传输规则是必须为https传输,因为我本身是Javaweb项目,发布在T ...

  3. 什么是HTTPS协议?HTTPS协议优势有哪些?

    我们在浏览网站的时候会发现有的网站URL是以HTTP开头,而有的是以HTTPS开头的,通常网站的URL会分为两部分:通信协议和域名地址.域名地址我们好理解,不同的域名对应着不同网站和页面,而通信协议简 ...

  4. PB使用http协议、https协议(简单便捷)

    PB使用HTTP协议.HTTPS协议 PB自身也有http组件,但使用起来较为繁琐.VDN作者将http功能通过API的形式封装为HttpClient组件,PB直接调用即可,支持http及https协 ...

  5. HTTP协议,HTTPS协议,SSL/TLS协议概述

    HTTP协议,HTTPS协议,SSL/TLS协议概述 1. 什么是HTTP协议   HTTP(Hyper Text Transfer Protocol,HTTP)协议超文本传输协议,是一个基于请求与响 ...

  6. 说说 Http协议与https协议区别

    Http协议与https协议区别: 1:https协议需要到ca申请证书,一般免费的证书比较少,一般都需要交费 2:http是超文本传输,信息是文明 传输,https则具备有安全性的ssl加密传输协议 ...

  7. http协议之https协议, libcurl实现人脸识别, 车牌识别

    原创: 冬冬他哥哥 链接: https://www.cnblogs.com/xietianjiao/p/13260021.html. http协议之https http协议详解 一.http协议的特性 ...

  8. HTTP协议与HTTPS协议详解(含常见面试题)

    目录 1.HTTP协议 1.1HTTP协议是什么 1.2 HTTP协议工作过程 1.3 HTTP请求方法 1.4.HTTP请求报文和应答报文 1.5 HTTP状态码 2.HTTPS协议 2.1.什么是 ...

  9. 简单了解HTTP协议与HTTPS协议

    编程实现人脸识别需要基于人工智能平台,基于HTTP协议通讯,顺便简单了解HTTP协议相关的周边,也是在为面试做准备. 本文为学习笔记,根据需要摘抄自下篇文章: 参考:原文地址 作者:冬冬他哥哥 HTT ...

最新文章

  1. java中文件名和类名之间的关系
  2. Hark的数据结构与算法练习之简单选择排序
  3. [vue] 你了解vue的diff算法吗?
  4. 打开旧Flutter项目说:Your Flutter application is created using an older version of the Android embedding
  5. 建一个 5G 基站,到底要花多少钱?
  6. 吴恩达神经网络和深度学习-学习笔记-31-池化层
  7. 仿照小米官网项目具体操作与细节
  8. 构建多基因的系统发育树
  9. ch340是什么芯片
  10. 阿里P9:程序员的“青春饭”,从什么时候开始结束?
  11. 怎样通过《Sbo维护与开发助手软件》进行Sbo开发和维护(1/3)
  12. vml时序表_Vml:美洲豹系列教程之十一(数据图表)
  13. 为什么阿里巴巴的企业Logo是它?
  14. Nginx二级域名代理二级目录
  15. POSCMS 支付设置
  16. 20-《电子入门趣谈》第四章_自己制作电路板-4.1面包板的介绍和经典案例使用教程
  17. 最简洁的Git的基本操作
  18. mysql没开启binlog恢复数据_MySQL:binlog恢复数据
  19. y7000电池固件_联想 拯救者Y7000P 怎么拿出电池?
  20. 51单片机入门之四:静态数码管,单片机如何驱动数码管

热门文章

  1. chkconfig(check config)命令详解
  2. mysql数据库 布尔类型_MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】...
  3. python连接AutoCAD;pyautocad连接错误;win32com连接AutoCAD出现问题
  4. 开源办公套件 ONLYOFFICE文档7.4新功能
  5. 【IT名词】计算机篇
  6. IDEA找不到Persistence窗口
  7. 画笔与画刷(pen and brush)
  8. 2022 最新 JDK8 新特性 面试题
  9. 服务器部署openfire
  10. (~)运算符的理解与解析