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月初,继续加油!

posted @ 2023-03-01 10:37  先娶国王后取经  阅读(1059)  评论(0编辑  收藏  举报