一个实现网络应用技术细节的程序员在公开网站之前应该考虑哪些事情? 如果Jeff Atwood可以忘记HttpOnly cookies、网站地图、和跨站请求伪造_都在同一个网站中,那么我也会忘记什么重要的事情?
我是从网站开发人员的角度来考虑这个问题的,比如说其他人正在创造网站的实际设计和内容。 因此,虽然可用性和内容可能比平台更重要,但你这个程序员在这方面没有什么发言权。 你需要担心的是,你对平台的实施是稳定的,性能良好的,安全的,并满足任何其他商业目标(如不花费太多,建立时间太长,在谷歌的排名与内容支持一样好)。
从一个开发者的角度来考虑这个问题,他在一个相当可靠的环境中为内部网类型的应用做了一些工作,并且即将有他的第一次尝试,为整个大的坏的世界网络提供一个潜在的流行网站。
此外,我正在寻找一些更具体的东西,而不仅仅是一个模糊的网络标准的回应。 我的意思是,HTML、JavaScript和CSS在HTTP上的应用几乎是必然的,特别是当我已经说明你是一个专业的网络开发人员时。 那么,除此之外,还有哪些标准? 在什么情况下,以及为什么? 请提供标准规范的链接。
这里的想法是,我们大多数人应该已经知道这个清单上的大部分内容。 但可能有一两个项目你以前没有真正研究过,不完全了解,或者甚至从未听说过。 界面和用户体验
rel="nofollow"
属性以避免垃圾邮件。rel="noopener noreferrer"
放在所有用户提供的链接上,并加上target="_blank"
以防止目标页面的JavaScript将你的页面重定向到其他地方,比如一个假的登录页面。更多信息favicon.ico
文件,即/favicon.ico
。浏览器会自动请求它,即使HTML中根本没有提到这个图标。如果你没有/favicon.ico
,这将导致大量的404,耗费你的服务器带宽。
SEO(搜索引擎优化)example.com/pages/45-article-title
而不是example.com/index.php?page=45
。#
时,将#
改为#!
,然后在服务器上$_REQUEST["_escaped_fragment_"]
是googlebot使用的,而不是#!
。换句话说,./#!page=1
变成./?_escaped_fragments_=page=1
。此外,对于可能使用FF.b4或Chromium的用户,history.pushState({"foo":"bar"}, "About", "./?page=1");
是一个伟大的命令。因此,即使地址栏已经改变,页面也不会重新加载。这允许你使用?
而不是#!
来保持动态内容,同时在你给链接发邮件时告诉服务器,我们是在这个页面之后,AJAX不需要再做额外的请求。/sitemap.xml
。<link rel="canonical" ... />
,这个问题也可以通过Google Webmaster Tools解决。301 Moved Permanently
)要求www.example.com
到example.com
(或反过来)以防止在两个网站之间分割谷歌排名。