文章目录
服务架构介绍及http协议
一、网站或业务架构模型
1.名词解释
1.什么是项目?
IT行业内,一个项目就是一个业务。
2.什么是架构
服务器的业务架构:实现某种项目或业务的服务构成。
3.什么是集群
2台以上的服务器环境一模一样,共同完成同一件事情。
二、传统网站架构流程
1.用户访问项目的流程
- 将域名通过DNS解析获取到服务器IP地址
- 发起TCP连接
- 服务端防火墙根据请求包的流量进行规则过滤
- 负载均衡集群根据请求需求向后端转发流量到目标web服务器
- web服务器处理请求
- 静态资源请求:直接和存储服务器通信,获取静态资源,获取到资源后封装响应报文
- 静态资源:前端代码所写 的文件(html,css),图片,视频,
- 动态资源请求:经过动态解析,获取到解析后的资源,封装响应报文,返回给用户
- 动态资源:后端语言编写的文件(php,java,C,Python,go)
- 静态资源请求:直接和存储服务器通信,获取静态资源,获取到资源后封装响应报文
2.实现网站架构的服务集群
防火墙:主流硬件防火墙(IPS,IDS产品)
WAF防火墙
安全厂商:360,奇安信,长亭科技,安恒,天融信
负载均衡:Nginx,
阿里云:slb,clb
web服务中间件:
静态web:Nginx,Apache,IIS
动态web:
java:Tomcat,Weblogic,Jboss
Python:Uwsgi
数据库:MySQL,Oracle,SQL Server,Redis,PostgreSQL,Mongo DB
三、http协议
1.什么是URL
统一资源定位系统。通常我们在访问一个网站页面时,请求到的内容通常称为“资源”。而“资源”这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。每一个资源都由一个URL来标识的。
http:// | www.michael.com | :80(隐藏) | /img/test.jpg |
---|---|---|---|
协议 | 域名 | 端口 | URI |
定义通信协商协议报文 | 获取目标服务器的IP地址 | 定义建立tcp连接的通信端口 | 最终服务器中所请求的资源文件的存放路径 |
2.什么是html页面
html:超文本标记语言,用于规范页面内容的语言框架。
一个html页面是由多个URL资源构成
3.什么是http协议
超文本传输协议,是一种能获取到html资源的通信协议
http协议用于定义获取每一个url资源的数据报文的
4.http报文结构
curl -v www.baidu.com
请求报文:用户向服务端发起的访问请求
用户向服务端发起的访问请求 三部分构成
# 请求头
> GET / HTTP/1.1
# 请求方式
GET 获取数据的请求。URL中携带参数的,一般请求主体为空
POST 发送数据的请求。URL不携带参数,post参数携带到了请求主体中了
URL中的参数指的是url中?以后的内容
携带了参数,证明本次请求一定是个动态请求
没有携带参数,有可能是静态请求
# / 声明当前请求的uri路径
# 声明本次请求的http协议的版本
1.0 不支持TCP长连接,一次连接只可以发送一个http包
1.1 支持tcp长连接,一次连接可以串行发送多个http包
2.0 支持tcp长连接,一次连接可以并行发送多个http包
> User-Agent: curl/7.29.0
本次请求报文客户端的类型
# 关注的点
1.通过判断客户端类型,展示手机页面或pc页面
2.流量安全审计行为
判断不法分子,攻击工具的信息
> Host: www.baidu.com
> Accept: */*
# 空行
>
# 请求主体
响应报文:服务端接收到请求后,回复报文
响应头+空行+响应主体
< HTTP/1.1 200 OK
状态码:标识本次请求状态,不同的标识码代表不同状态含义
400以前的都是正常请求的状态码,400及以后的都是非正常状态
200
301 永久重定向
302 临时重定向
400 bad request 请求报文结构有问题
401 basic认证失败
403 服务端认证失败 首页索引文件丢失
404 文件找不到
500 服务器内部错误。服务端动态解析文件有故障
502 服务器内部交互错误 http请求成功被服务端接收,服务端内部通信出故障
504 服务器有效时间内没有响应http请求
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Cache: HIT
< Connection: keep-alive 、closed
< Content-Length: 2381
# 本次请求的资源类型
< Content-Type: text/html image/jpeg image/png application/php
# 请求访问的时间
< Date: Mon, 05 Aug 2024 02:46:58 GMT
< Etag: "588604c1-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:29 GMT
< Pragma: no-cache
# 本次请求服务端web应用的信息
< Server: bfe/1.0.8.18
# 会话保持的指纹
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
# cookie和session
# 应用场景:保持用户在该网站的登录状态,用户身份的识别功能
session:由服务端生成后,存储在服务端中的
cookie:由服务端根据session生成,通过响应报文发送给客户端,客户端保存在缓存中,用于下一次发送请求,直接携带,和服务端session进行比对
# 空行
<
# 响应主体