引入(摘自百度百科)
超文本传输协议(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. 数据科学中常见的9种距离度量方法
  2. oracle 优化器 失效,oracle 优化器 不走索引原因
  3. object dection资源
  4. 巴黎事件发生后,Facebook、Twitter、Google和Uber都做了什么?
  5. Android SQLiteDatabase的使用
  6. MySQL—不相关子查询(多行子查询)
  7. Android IOS WebRTC 音视频开发总结(八十七)-- WebRTC中丢包重传NACK实现分析
  8. 使用css制作三角,兼容IE6,用到的标签divsspan
  9. java 集合读写同步_JAVA多线程学习十六 - 同步集合类的应用
  10. .NET Core 2.1中的HttpClientFactory最佳实践
  11. java如何实现不固定个数传参
  12. 51nod 1091 线段的重叠(贪心)
  13. RadASM 颜色配置
  14. 和差测角天线方向图仿真matlab 含代码
  15. 将pdf文件缩小的最快速方法,pdf文件变小的方法
  16. 移动平台端到端低成本解决方案
  17. 乐视:基于Docker的RDS,我们是这样做的
  18. mysql中in的参数有限制_数据库 in 可以包含的参数个数
  19. 这些用 Python 写的牛逼程序/脚本,你玩过吗?
  20. pathway 中几张特殊的通路图

热门文章

  1. 阿里之TDDL 介绍
  2. Unity ios平台GPS地址位置定位
  3. 电脑犯罪的历史与现状
  4. voltDB官方文档第三章翻译
  5. Excel拼接后的字符串复制文本到word中出现换行符
  6. matlab series,MATLAB series RLC load和series RLC branch的区别?
  7. openfire插件开发流程
  8. 橘子皮除甲醛,您被骗了多少年?除醛方法一箩筐,靠谱的才管用!
  9. 微信小程序体验版数据加载失败,打开调试模式下才可以
  10. 自己用js写的日历(在考勤中使用,显示员工的日期的考勤情况)