如题,写 web,用各种网关用了很多年了,一直没较过真,今天想搞清楚一下。一般来说,web 框架里首先要经过一个搭在 tcp 层上的网关,这里说的网关应该是负责处理字节流到 http 协议转换的问题。
但是还有一个网关,就是一般拨号上网之类的,你要注册子网掩码、默认网关、默认 DNS 等等,这里也有一个网关。很显然这个网关处理的不是应用层的问题。所以网关到底是第几层的概念?
=====
不要吐槽标题中的 http 层和 tcp 层,谢谢大家。
1
iyaozhen 2021-04-01 13:36:26 +08:00
「这里说的网关应该是负责处理字节流到 http 协议转换的问题」
这个也不是,没有什么转换的问题,http 协议就是 http 协议,你说的应该是解析 http 协议变成程序可操作的数据结构(比如 map 、object ),这是 http server 做的事情 你说的应该是 api-gateway https://www.aliyun.com/product/apigateway ? 这种要算还是应用层(你说的 http 层),其实就是个大号的 nginx,没有它也行 |
2
cloudbeyond 2021-04-01 13:37:25 +08:00
几层网关就是第几层的网关的概念,看网关主要处理 OSI 当中哪一层
一般会说 2 层交换(基于 MAC 地址) 3 层路由(基于 IP ),4 层网关( TCP/UDP ),7 层网关( HTTP ) |
3
chinvo 2021-04-01 13:39:28 +08:00 via iPhone 1
不是一个概念
Web 网关有工作在 7 层( http)上的,有工作在 4 层(tcp)上的 上网的网关一般是 3 层 /跨 23 层 类似的, 还有支付网关, 工作在 7 层(也有一些对接电报之类的低层次的支付网关, 是夸 1 ~ 7 层); iot 网关, 也可能是跨 1 ~ 7 层的 总之, 虽然都叫 gateway, 但不是一种东西. |