http协议在3.0之前都是基于 tcp 协议的,但是我使用golang写了一个简单的监听tcp请求的服务器为什么可以接收到http请求
tcpListener, err := net.ListenTCP("tcp", server.OuterServer.LocalAddress)
但是居然可以直接使用 Postman 进行请求,网络学的不是很好,仅仅知道7层协议模型,TCP可靠传输之类的简单问题,在我印象里,应该是仅能使用 tcp 请求才能请求 这个端口,建立链接,有人知道为什么吗
http协议在3.0之前都是基于 tcp 协议的,但是我使用golang写了一个简单的监听tcp请求的服务器为什么可以接收到http请求
tcpListener, err := net.ListenTCP("tcp", server.OuterServer.LocalAddress)
但是居然可以直接使用 Postman 进行请求,网络学的不是很好,仅仅知道7层协议模型,TCP可靠传输之类的简单问题,在我印象里,应该是仅能使用 tcp 请求才能请求 这个端口,建立链接,有人知道为什么吗
http.ListenAndServe 可以看下这个标准库源码
http 库基于 net.listen 实现了 http 服务,其本质还是建立了 tcp 连接来接收响应数据,只是按照了http协议标准标准在tcp做了封装。
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
5 回答3.6k 阅读
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
HTTP OSI 模型的第 7 层(应用层),TCP 位于 OSI 模型的第 4 层(传输层)
是终还是通过TCP/IP 连接传输数据
在客户端和服务器可以交换 HTTP 请求/响应之前,它们必须首先建立 TCP 连接。因此,HTTP 依赖于 TCP 标准才能成功完成其工作。