前端程序员必备概念

  • 你是否知道自己的电脑为什么可以访问百度?为什么你本地起的服务只可以让和你在同一局域网的电脑访问到?
  1. 先解释一下这俩个问题

你可以访问百度是因为百度的地址是公网ip,任何连网的电脑都可以通过http协议进行解析访问

你本地起的服务只有和你是在同一个局域网内的电脑才可以解析你的地址进行访问

    2. 解释一下公网ip

公网你可以理解为全世界约定了一个规则,只要可以上网的电脑都可以按照这个规则进行访问

  3. 解释一下内网(局域网)ip

局域网你可以理解为一个小群体自定义的规则,只有这个群体的内部人员才知如何解析访问,所以你本地起的服务只有和你在同一局域网的电脑才可以访问的到

 4. 如何判断另一台机子是否可以访问你本地起的服务

 方法一:比较它们的网络号是否相同。 
通常TCP/IP协议的属性中没有直接显示网络号,那么网络号怎么得出呢?将IP号与子网掩码进行与运算就可以得到网络号了

方法二:直接用一台电脑ping另一台电脑的ip。 
具体如下:在开始-》运行中输入cmd,跳出dos界面后,输入“ping ...”,如果返回四行Request time out,则表示不在同一个局域网;如果返回四行“repley from ….”数据的话,表示在同一个局域网

 5. 跨域是什么(先来了解一下同源策略)

同源策略/SOP是一种约定,是浏览器引入的最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XXS、CSFR等攻击,所谓的同源是指“协议+域名+端口”三者相同的俩个url,即便同一个域名对应不同的ip也会产生跨域

从http://zxy.com/index.html 地址 调用http://zxy.com/server.php    非跨域 (协议、IP、域名和端口都相同)
   从http://zxy.com/index.html 地址 调用http://hzx.com/server.php    跨域,主域不同  (域名不同)
   从http://aa.zxy.com/index.html地址  调用http://bb.zxy.com/server.php    跨域,子域不同 (子域不同)
   从http://zxy.com:8080/index.html地址  调用http://zxy.com/server.php    跨域,端口号不同 (端口号不同)
   从https://zxy.com/index.html地址 调用http://zxy.com/server.php    跨域,协议不同 (协议不同 http与https是不同的规则)

 6. 解决跨域的方法

 通过jsonp跨域
 document.domain + iframe跨域
 location.hash + iframe
 window.name + iframe跨域
 postMessage跨域
 跨域资源共享(CORS)
 nginx代理跨域
 nodejs中间件代理跨域
 WebSocket协议跨域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值