IP+端口的深入理解
为什么打开浏览器输入的网址前面都会加上一个https或者http呢?
因为这是为了方便!
我们通过一个IP地址可以定位到一台服务器,但如何精确到服务器里的某项服务呢?
这就需要加上端口号;服务器里的某项服务开始对外服务,那它一定会开始监听某一个或多个端口,所以ip+port就可以精确到我们所需要的服务。
http默认端口号为80,https默认端口号为443,什么叫做默认?就是说如果我们在ip后面没有加上端口的话,那浏览器就会根据你所使用的协议的默认端口;
也就是若你ip前面使用http协议,则会使用80端口;若你IP前面使用https协议,则会使用443端口。
那你或许又疑惑了,一般输入网址时也没输入所谓的协议啊?
这其实是浏览器强制给你加上去的,当然你也可以手动改,但咱不是懒嘛,而且现在大多数网站都是使用https,所以说这是强制,也是图个方便。
再说说域名。为什么使用域名呢?因为数字难记。
域名通过DNS解析器解析出ip地址,然后再通过该ip去找相应的服务器。
你可能又会发现,现在使用的大多数协议不是https就是http, 但你输入了无数的网址又都没有加过端口,难道说这些给你提供服务的端口都是443或者80吗?
想想就知道,肯定不是啊!那它是如何实现的呢?这就要谈谈nginx反向代理了。
虽然你使用的是https的默认端口443,当然目标服务器也是开通了443端口的,但它为你提供服务的端口不一定就是443
server{ listen 443; # 监听80端口 server_name baidu.com; # 请求的域名 location /{ proxy_pass https://27.68.123.145:8001; } }
上面这个nginx反向代理的意思就是baidu.com:443会自动转到https://27.68.123.145:8001
这也就看出真正提供服务的端口是8001;其实docker容器里的端口映射原理也是这样。
3月初,继续加油!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类