【运维知识进阶篇】集群架构-HTTP协议详解

简介: 【运维知识进阶篇】集群架构-HTTP协议详解

本篇文章给大家介绍HTTP协议相关内容,包括HTTP协议简介,HTTP协议工作原理,请求报文,HTTP请求方法,HTTP响应方法,用户访问集群架构流程,HTTP相关术语。

HTTP协议简介

HTTP是hyper text transfer protocol 的缩写

1、超文本

hyper text是超文本的意思,是包含超链接和各种多媒体元素标记的文本,这些超文本文件彼此链接,形成网状,因此又被称为网页,这些链接使用URL表示,最常见的超文本格式是超文本标记语言HTML。

2、URL

URL是统一资源定位符,用来唯一地标识万维网中的某一个文档。URL由协议、主机和端口(默认80)以及文件名三部分构成。

URL:协议+主机:端口+文件名及其路径

3、HTTP

HTTP协议是超文本传输协议,是将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。

HTTP工作原理

HTTP工作原理:请求/响应交互模型

用户在点击URL后,浏览器和Web服务器执行以下的动作:

1、浏览器分析超链接的URL

2、浏览器向DNS请求解析URL的IP地址

3、DNS将解析出来的IP地址返回给浏览器

4、浏览器与服务器建立TCP链接(80端口)

5、浏览器请求文档(请求方法、请求路径)

6、服务器给出响应,将请求路径的文档返回给浏览器

7、释放TCP链接

8、浏览器显示请求文档的内容

请求报文

请求报文由请求行、请求头部、空行、请求数据,四个部分组成。

HTTP请求方法

常见的请求报文中的方法

方法 含义 方法 含义
GET 请求读取一个Web页面 HTAD 请求读取一个Web页面的首部
POST 提交要被处理的数据 PUT 请求存储一个Web页面
DELETE 删除Web页面 TRACE 用于测试,要求服务器送回收到的请求
CONNECT 用于代理服务器 OPTION 查询特定选项

HTTP响应

状态码是响应报文状态行中包含的一个3位数字,指明特定的请求是否被满足,如果没有满足,原因是什么,状态码分为以下五类

状态码 含义 例子
1xx 通知信息 100=服务器正在处理客户请求
2xx 成功 200=请求成功
3xx 重定向 301=永久重定向,302=临时重定向,304=缓存
4xx 客户错误 403=没有权限,404=没有目录
5xx 服务器错误 500=服务器内部错误,503=以后再试

HTTP头部

类型 说明
User-Agent 请求 关于浏览器和它平台的信息
Accept 请求 客户能处理的页面的类型,如text/html
Accept-Charset 请求 客户可以接受的字符集,如Unicode-1-1
Accept-Encoding 请求 客户能处理的页面编码方法,如gzip
Accept-Language 请求 客户能处理的自然语言,如en英语,zh-cn简体中文
Host 请求 服务器的DNS名称,从URL中提取出来,必需
Referer 请求 用户从该URL代表的页面触发访问当前请求的页面
Cookie 请求 将以前设置的Cookie送回服务器,可用来作为会话信息
Date 双向 消息被发送(接收)的日期和时间
Server 响应 关于服务器的信息,如Microsoft-IIS/6.0
Content-Encoding 响应 内容是如何被编码(gzip)
Content-Language 响应 页面所使用的自然语言
Content-Length 响应 以字节计算的页面长度
Content-Type 响应 页面的MIME类型
Last-Modified 响应 页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location 响应 指示客户将请求发送给别处,即重定向到另一URL
Set-Cookie 响应 服务器希望客户保存一个Cookie

用户访问网站集群架构流程

1. 1.客户端发起http请求,请求会先抵达前端的防火墙
2. 2.防火墙识别用户身份,正常的请求通过内部交换机通过tcp连接后端的负载均衡,传递用户的http请求
3. 3.负载接收到请求,会根据请求的内容进行下发任务,通过tcp连接后端的web,转发用户的http请求
4. 4.web接收到用户的http请求后,会根据用户请求的内容进行解析,解析分为如下:
5. 静态请求:web直接返回给负载均衡->防火墙->用户
6. 动态请求:web向后端的动态程序建立TCP连接,将用户的动态http请求传递至动态程序->由动态程序进行解析
7. 5.动态程序在解析的过程中,如果碰到查询数据库请求,则优先与缓存建立tcp连接,并发起数据查询操作。
8. 6.如果缓存没有对应的数据,动态程序再次向数据库建立tcp连接,并发起查询操作。
9. 7.最后数据由, 数据库->动态程序->缓存->web服务->负载均衡->防火墙->用户。

HTTP相关术语

PV UV IP

PV:打开一个页面,访问一次页面称为一次PV,产生了一次浏览,由于缓存问题,没法明确统计点击次数,有缓存服务器显示次数会少。(也有人说一次请求是一次PV,概念比较模糊)

UV:独立的设备(一个设备表示一个UV)

IP:表示独立的IP地址,是指公网IP

SOA

SOA(Service-Oriented Architecture 服务导向架构)是一种面向服务的松耦合架构,它将应用程序中的功能划分成一组可重用且独立的服务单元。每个服务单元都具有明确定义的接口和对外暴露的操作,这些操作可以通过互联网或企业内部网络进行访问和调用。

SOA的最大优势在于其松散耦合的设计,使得服务能够相对独立地进行开发、部署、更新和维护,从而提高了整个系统的可扩展性、灵活性和可维护性。

SOA架构还可以帮助组织实现更好的业务流程管理和IT资源分配,因为该架构可以通过标准化的接口和协议(例如SOAP、WSDL、UDDI等)进行交互,而不需要依赖特定的平台、语言或技术。另外,SOA还可以帮助企业实现基于服务的架构和组件化的开发模式,从而提高软件复用度和开发效率。

HTTP1.1,不支持并发,但是通过多次握手方式实现并发,最多6-8次同时握手。HTTP2.0就支持并发了。


我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

目录
相关文章
|
11月前
|
机器学习/深度学习 人工智能 运维
云架构不是养祖宗,智能运维教你省心又省钱
云架构不是养祖宗,智能运维教你省心又省钱
263 2
|
11月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
1250 0
|
11月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
人工智能 JavaScript 开发工具
MCP详解:背景、架构与应用
模型上下文协议(MCP)是由Anthropic提出的开源标准,旨在解决大语言模型与外部数据源和工具集成的难题。作为AI领域的“USB-C接口”,MCP通过标准化、双向通信通道连接模型与外部服务,支持资源访问、工具调用及提示模板交互。其架构基于客户端-服务器模型,提供Python、TypeScript等多语言SDK,方便开发者快速构建服务。MCP已广泛应用于文件系统、数据库、网页浏览等领域,并被阿里云百炼平台引入,助力快速搭建智能助手。未来,MCP有望成为连接大模型与现实世界的通用标准,推动AI生态繁荣发展。
10337 66
|
人工智能 自然语言处理 API
MCP与A2A协议比较:人工智能系统互联与协作的技术基础架构
本文深入解析了人工智能领域的两项关键基础设施协议:模型上下文协议(MCP)与代理对代理协议(A2A)。MCP由Anthropic开发,专注于标准化AI模型与外部工具和数据源的连接,降低系统集成复杂度;A2A由Google发布,旨在实现不同AI代理间的跨平台协作。两者虽有相似之处,但在设计目标与应用场景上互为补充。文章通过具体示例分析了两种协议的技术差异及适用场景,并探讨了其在企业工作流自动化、医疗信息系统和软件工程中的应用。最后,文章强调了整合MCP与A2A构建协同AI系统架构的重要性,为未来AI技术生态系统的演进提供了方向。
2039 62
|
运维 监控 Cloud Native
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
355 1
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。