面试问题: "新"操作员和"新"操作员之间的区别是什么?
我回答说没有区别,他们运行相同的代码,但是面试官一直在训练我,就像这是错误的答案.
这是错误的答案吗?还是面试官和我一起玩游戏?
如果这是错误的答案,那么正确的答案是什么?
我继续说,如果你需要自定义分配,"新"运算符可能会重载,但后来他想知道如何重载它.当然我没有那个答案,从来没有这个需要,但我告诉他我可以在10分钟内查一查(这在采访中从来都不是正确的答案).
无论如何,我已经对"新"操作员与"新"功能进行了一些研究而没有看到任何真正令人满意的答案,我想我会问具体的问题.
我刚刚更新了运行 Apache 2.2.15 的 CentOS 6.9 虚拟机。突然间,Apache 太“挑剔”了,无法响应浏览器。任何浏览器。错误日志如下:
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23):
Run Code Online (Sandbox Code Playgroud)
等等。
除了更新系统之外,我没有做任何更改,因为地球上的每个安全大师都告诉我们要确保我们始终拥有最新的安全补丁。一些研究表明,该消息意味着客户端没有发送“主机”标头。好吧,如果这是原因,那么它已经有一段时间没有引起注意了。
为了确认问题实际上是在更新中引起的,我回滚了它。所以现在它像以前一样工作,即正确。或者,如果不是 100%“正确”,它至少可以工作。
仅供参考,如果有人为类似的问题阅读此内容,您可以回滚您的更新(假设您使用“yum update”来更新您的系统):
# yum history
Run Code Online (Sandbox Code Playgroud)
历史记录以相反的顺序列出,最近的排在最前面,最左边的列中有一个ID号。回滚如下:
# yum undo ID
Run Code Online (Sandbox Code Playgroud)
我的工作版本(回滚更新后)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Mar 22 2017 06:52:55
Run Code Online (Sandbox Code Playgroud)
我的不工作版本(更新时)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Aug 15 2017 19:44:58
Run Code Online (Sandbox Code Playgroud)
是的,所以在 3 月和 8 月之间,显然“主机名”标题成为强制性的。
好吧,也许“更新”碰巧“修复”了某些东西,但是说“修复”碰巧破坏了其他一切。或者至少,它使一个相当好的系统完全无法运行。
所以我对 StackOverflow 的好人的问题有两个方面。
首先,我做错了什么?我该如何解决它以正确执行?我确实想要最新的修复程序,但如果它破坏了其他所有内容,则不会。
其次,我能否请一些安全专家承认,也许每次补丁可用时都更新您的系统并不总是一个好主意?