端口和http请求

端口:
<1>我们日常所说的端口,是操作系统提供的逻辑端口,而非硬件端口;
<2>程序运行在端口上,并且最多只能被一个程序占用;
<3>访问端口就是请求和被其占用的应用程序通信。
比较容易犯晕的问题:
1.我们常说http协议默认使用80端口进行通信是什么意思?
从客户端的角度:客户端使用http请求(浏览器)访问服务器,如果请求中不包含端口号,那么浏览器会在请求的后面默认加上80端口。
从服务器端的角度:web服务器上运行的web程序,默认运行在80端口上(也可以是别的端口)。
这样客户端请求的端口和服务器上程序运行的端口保持一致,运行在这两个端口上的应用程序才能连接起来,进行正常的数据交换。也就是说,平常说的http使用80端口,指的是tomcat运行在服务器这台电脑的80端口上,和客户端程序(浏览器)运行在哪个端口没有半毛钱关系,浏览器运行的端口是随机的(只要系统允许的端口)。
2.我电脑上的80端口关闭或者被其他程序占用后,还能正常上网吗?
能!肯定能!80端口是对外开放的通信端口,也就是说你的电脑关闭了80端口,只是别人不能访问运行在你80端口上的应用程序(如果之前可以访问的话),你电脑上的浏览器可以运行在任意端口上(系统允许的),继续和服务器上运行在服务器80端口的程序通信。
3.那为什么说封掉80端口就不能再访问外部网站了?
这个指的是公司的防火墙。防火墙可以看作是一个过滤器,这里的‘封掉80端口’指的是防火墙对你的网络请求进行了拦截。以访问google为例:
<1>在浏览器输入www.google.com,回车;
<2>浏览器把你的请求变为:http://www.google.com:80;
<3>请求要出去,首先要经过防火墙,如果防火墙不允许请求中访问外部的80端口,你的请求就直接被拦截,根本出不去。
所以,这种封掉80端口和上面关闭80端口不是一个概念。一个是关闭本机的80端口,一个是禁止对外部计算机80端口的访问。
4.http请求一定要访问80端口吗?
不一定。80端口只是客户端发出的http请求默认去访问的服务器端口,只要请求的端口和服务器程序运行的端口保持一致就可以。我们日常开发使用的tomcat就运行在8080端口,在浏览器输入http://localhost:8080也可以访问tomcat的。只是一般网站服务器程序都运行在80端口上,我们只需要输入网址即可,不用再输入类似ww.google.com:80这样带有端口号的地址,比较方便。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值