工作中碰到比较印象深刻的问题(面试必问)

面试官经常会问到这么一个问题。有些人可能有些误区认为我们工作中碰到的问题都必须是很牛的技术来解决了才能说出来。其实不是的,我们工作中碰到的任何难点都只是在解决办法上的思想上没有打通而已。

举个例子:

我碰到一个这样的问题。首先需要登录到一个web界面下载一个客户端,地址是:http://127.0.0.1:8080/demo。

我需要下载一个客户端client.jnlp,链接是http://127.0.0.1:8080/demo/client.jnlp

client.jnlp中的内容是通过http://127.0.0.1:8080/demo/文件名 的链接来下载服务器上所有的文件内容,如client.jnlp、data、applicationClient...

开始网页是没有做session控制的,http://127.0.0.1:8080/demo/文件名 就可以下载那个文件。

安全组就让我控制住。所以我在登陆后加了一个session。可是当我下载client.jnlp后,运行client.jnlp后,里面的东西下载不下来。原来jnlp和我web登录后session是不共享的。

有两种解决办法:

1、让session共享。这种觉得比较复杂,没有考虑

2、问题的难点在于点击运行client.jnlp时,里面的程序第一个下载的文件是client.jnlp,所以请求的路径是:http://127.0.0.1:8080/demo/client.jnlp、和网页上下载的链接也是一样。网页上控制session后,client.jnlp运行是没有session的。

所以我想了一个办法,我把client.jnlp中最开始请求的路径改为http://127.0.0.1:8080/demo/clientSuffix.jnlp,在后台判断如果请求的链接以clientSuffix.jnlp结尾则手动赋值session转发链接到http://127.0.0.1:8080/demo/client.jnlp。问题就解决了。

我服务器中是不存在clientSuffix.jnlp文件的,所以用户是不会手动敲链接下载clientSuffix.jnlp文件,如果敲出来了就和猜出了密码差不多了。

总结:其实生活中用到很牛逼的技术来解决问题少之又少,都是通过一些别的比较好的途径来变相的解决。能更好的解决为什么要花时间来用复杂的技术来解决呢。

其实面试官也只是考验你处理问题的能力,并不是要你说很牛的技术。要理解每个问题的痛点

原文地址:https://www.cnblogs.com/junwangzhe/p/7224256.html