当前位置: 首页 > news >正文

http和https分别是什么?

http
中文名:超文本传输协议
英文名:Hyper Text Transfer Protocol
解释:是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

http在哪一层?
HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,
这种规范记录在文档上,为真正通过HTTP进行通信的HTTP的实现程序。

http具体实现有哪些?
HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,
例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。
Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。

http有哪些版本及特点?
http1.0(最常用),http1.1(支持长连接),http2.0(传输性能高)

http工作原理?
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
1.客户与服务器建立连接;
2.客户向服务器提出请求;
3.服务器接受请求,并根据请求返回相应的文件作为应答;
4.客户与服务器关闭连接。
客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。
这种一次性连接主要考虑到WWW服务器面向的是Internet中成千上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,
及时地释放连接可以大大提高服务器的执行效率。
HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器存储负担,从而保持较快的响应速度。HTTP是一种面向对象的协议。
允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,
浏览器将通过TCP/IP协议与指定的服务器建立连接

http的报文格式?
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下: 
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求行以方法字段开始,后面分别是URL字段和HTTP协议版本字段,并以CRLF结尾。SP是分隔符。
除了在最后的CRLF序列中CF和LF是必需的之外,其他都可以不要。
请求报文示例
GET HTTP/1.1
Accept: text/plain, */*; q=0.01
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
Cookie: 
Host: www.baidu.com
Referer: https://www.baidu.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
X-Requested-With: XMLHttpRequest
sec-ch-ua: "Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"

应答报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,
而原因分析用来供用户使用。客户机无需用来检查或显示语法。
响应报文示例
HTTP/1.1 200 OK
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Thu, 29 Sep 2022 12:31:53 GMT
Expires: Thu, 29 Sep 2022 12:31:53 GMT
Server: BWS/1.0
Vary: Accept-Encoding
Content-Length: 78

http的状态消息?
1**   服务已收到请求,需要请求者继续执行操作
2**   成功
3**   重定向
4**   客户端错误
400 客户端请求语法错误,不能被服务端理解
403 forbidden,服务器收到请求,但是拒绝提供服务
404 not found
5**   服务端错误
500 服务器发生不可预期错误
503 服务器当前不能处理客户端请求,一段时间后可能恢复

https
中文名:超文本传输安全协议
英文名:Hyper Text Transfer Protocol Secure
解释:HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性

https工作流程?
1、TCP 三次同步握手
2、客户端验证服务器数字证书
3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
4、SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

http与https的区别?
http 明文传输,数据都是未加密的,安全性较差,https(ssl+http) 数据传输过程是加密的,安全性较好。
使用 https 协议需要到 ca(certificate authority,数字证书认证机构) 申请证书,一般免费证书较少,
因而需要一定费用。证书颁发机构如:symantec、comodo、godaddy 和 globalsign 等。
http 页面响应速度比 https快,主要是因为 http 使用 tcp 三次握手建立连接,客户端和服务器需要交换 3 个包,而 https除了 tcp 的三个包,
还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
https 其实就是建构在 ssl/tls 之上的 http 协议,所以, https 比 http 要更耗费服务器资源

相关文章:

  • 如何在 Next.js 中构建进度条指示器
  • 【Bluetooth|蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程
  • K8s中的CNI网络模型
  • C++ Reference: Standard C++ Library reference: C Library: cmath: remainder
  • vue3.2新增指令v-memo的使用
  • 【语音之家】AI产业沙龙—VoxSRC-22说话人识别挑战赛快商通方案介绍
  • 案例分析-金融业网络安全攻防
  • 多线程之四(锁策略+CAS+synchronized)
  • Swoole 的异步 Task 任务详解
  • 高维列联表
  • 0-1规划的MATLAB求解
  • 第十四章第三节2:Java集合框架之队列Queue
  • 海思3559万能平台搭建:RTSP实时播放的优化
  • 持续测试破解自动化测试的行业谜题
  • hai-AcWing计划
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • E-HPC支持多队列管理和自动伸缩
  • Java-详解HashMap
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL几个简单SQL的优化
  • Otto开发初探——微服务依赖管理新利器
  • php ci框架整合银盛支付
  • Python学习之路16-使用API
  • Redis 中的布隆过滤器
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue数据传递--我有特殊的实现技巧
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 基于web的全景—— Pannellum小试
  • 聊聊flink的TableFactory
  • 试着探索高并发下的系统架构面貌
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 我的zsh配置, 2019最新方案
  • 我这样减少了26.5M Java内存!
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (6)添加vue-cookie
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (办公)springboot配置aop处理请求.
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (推荐)叮当——中文语音对话机器人
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ./和../以及/和~之间的区别
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NetCore 如何动态路由