V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RangerWolf
V2EX  ›  问与答

牛客网的考试页面用了什么黑科技?按 F5 刷新跟直接贴地址进去效果完全不一样

  •  
  •   RangerWolf · 2016-04-03 15:49:49 +08:00 · 9882 次点击
    这是一个创建于 3152 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大概步骤是这样:
    (1) 进入页面 http://www.nowcoder.com/test/1429468/summary 并点击“开始做题”
    (2) 点击第二题获得比如地址: http://www.nowcoder.com/question/next?pid=1429468&qid=44581&tid=2940530
    注意,每个人的tid可能不一样,如果不从(1)进来的话可能就直接404了

    此时如果直接 F5 刷新,是不会出错的,但是如果把刚才的地址贴到地址栏之中,即使是同一个页面的地址栏之中,回车之后就跳到了 404 页面

    第一次看到这种黑科技
    不知道哪位大神能解答一下这是什么原理?
    感谢!
    21 条回复    2017-09-08 17:30:06 +08:00
    ETiV
        1
    ETiV  
       2016-04-03 16:00:27 +08:00   ❤️ 2
    应该是从 Referer 判断的吧? 刷新带 refer, 直接进不带 refer.
    audi
        2
    audi  
       2016-04-03 16:04:44 +08:00 via iPhone
    动不动就黑科技,楼主多大了。
    RangerWolf
        3
    RangerWolf  
    OP
       2016-04-03 16:48:14 +08:00
    @audi 术业有专攻而已,楼主对此感觉很神奇。 如果你知道还请告知~ 谢谢
    RangerWolf
        4
    RangerWolf  
    OP
       2016-04-03 16:50:42 +08:00
    @ETiV 可能确实是这样,不过也不知道如何测试来验证这个观点。如果使用 curl 之类的来测试的话,好像还要模拟 cookit 跟 session ,好麻烦的样子。。。
    UnisandK
        5
    UnisandK  
       2016-04-03 16:51:51 +08:00
    选第二题那个请求是 POST 的
    SourceMan
        6
    SourceMan  
       2016-04-03 17:00:12 +08:00
    这就是 SPA 的弊处,人看到的跟搜索引擎看到的不一致。
    当然,我说可能 ajax 动态的改变了页面内容
    RangerWolf
        7
    RangerWolf  
    OP
       2016-04-03 17:01:01 +08:00
    @UnisandK 请问你是怎么发现他是 post 的? 我想跟踪点击第二题的 js 函数,没跟踪到。。。 不知道隐藏到哪个 js 里面了。而且没有显示的 onclick 之类的事件。想通过 classname 来查找,发现 js 文件好像比较多,点了几个也没看到。。。
    qiayue
        8
    qiayue  
       2016-04-03 17:07:44 +08:00
    表示在我的 Chrome 上直接刷新我自己的地址是正常的,但是打开你的地址是 404 ,这是因为我的 tid 和你的 tid 不一致,也就是说不能够打开他人的网址,帮助他人答题。
    UnisandK
        9
    UnisandK  
       2016-04-03 17:08:22 +08:00   ❤️ 1
    @RangerWolf F12 看 network 啊= =。。
    UnisandK
        10
    UnisandK  
       2016-04-03 17:41:57 +08:00
    这不就一个普通 POST 请求,有啥黑科技的。。
    RangerWolf
        11
    RangerWolf  
    OP
       2016-04-03 17:59:08 +08:00
    @UnisandK 请问你这是什么工具? 我一直用的 chrome 自带的没看到有 post

    RangerWolf
        12
    RangerWolf  
    OP
       2016-04-03 18:01:31 +08:00
    @UnisandK 再问一下,你后面这个截图里面又是什么工具? 不知道 windows 上有没有。。。
    UnisandK
        13
    UnisandK  
       2016-04-03 18:06:25 +08:00   ❤️ 1
    @RangerWolf 在 Name 上点右键,把 Method 勾上。。
    UnisandK
        14
    UnisandK  
       2016-04-03 18:10:57 +08:00
    @RangerWolf 第一个是 Firebug ,火狐插件, Chrome 用自己的 F12 就行;第二个是 Paw , Windows 没有,但 Chrome 可以用 Postman
    https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop
    chiu
        15
    chiu  
       2016-04-03 23:00:39 +08:00   ❤️ 1
    为何不问问牛客网创始人
    @nowcoder
    RangerWolf
        16
    RangerWolf  
    OP
       2016-04-04 08:44:14 +08:00
    @UnisandK 原来还能这样。。。。 学习了~
    RangerWolf
        17
    RangerWolf  
    OP
       2016-04-04 08:45:01 +08:00
    @chiu 原来创始人也在 V2 ...
    nowcoder
        18
    nowcoder  
       2016-04-05 09:29:59 +08:00
    就是简单的 post 请求。。这里没有黑科技。。
    RangerWolf
        19
    RangerWolf  
    OP
       2016-04-05 09:37:30 +08:00
    @nowcoder 感谢指点~ 只是对这个不懂感觉很神奇 :D
    zclHIT
        20
    zclHIT  
       2017-09-08 17:29:39 +08:00
    @RangerWolf windows 有一个类似的软件叫 ScreenPresso,用起来不错
    zclHIT
        21
    zclHIT  
       2017-09-08 17:30:06 +08:00
    @nowcoder 大。。大佬。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1072 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.