相对协议URL



在使用HTTPS协议访问的网页中引用有HTTP的非安全连接资源,在IE中就会出现上面的提示。

一般的商业网站都会有HTTPS(安全)和HTTP(非安全)版本,并且让用户可以选择切换,因为上述提示的原因,我们做网页的时候由于引用资源的原因,需要做出两套版本吗?

并不需要的,我们可以用下面的形式引用一张图片:

<img src="//hello-gae-for-python.appspot.com/static/oops.jpg">

不管你是使用HTTPS访问还是HTTP访问,浏览器都会以与你相同的协议请求这张图片,从而在保证只有一份源代码的版本下避免了上面所弹出的警告信息。

同样,请求javascript文件可以使用下面的形式:

<script type="text/javascript" src="//ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="/static/jquery-1.4.4.min.js"%3E%3C/script%3E'))

上面使用的这种技术称之为“network-path reference”(暂且译做“网络路径引用”),它在RFC 3986文件中定义。为了能够总是正常得访问到资源,可以使用这种写法来代替协议明确的URL。

同样CSS中也可以使用它:

#bg{
	background-image:url(//hello-gae-for-python.appspot.com/static/i-can-fly.jpg);
}

一切看起来很美好,而且这样写还可以省几个字节~
然而在IE7/IE8中使用link或者@import样式表文件,所引用的文件会被下载两次

除此之外,其它的工作都很正常。

于是,我们可以把对样式表的服务器协议的判断交给模板引擎,在渲染时指定style文件的引用的协议。在CSS文件中可以使用这种句法对我们来说已经很受用了。

演示(可能需要翻墙):
HTTP版 http://hello-gae-for-python.appspot.com/
HTTPS版 https://hello-gae-for-python.appspot.com/

via The protocol-relative URL
-EOF-

(gs) Grid-Service获取独立IP方法

(mt)的Grid-Service是不提供独立IP的,因此我们无法给空间购买独立IP。
但是Grid-Service允许添加一个SSL证书,当添加SSL证书后便会获得一个独立IP(dedicated IP Address),因此,我们可以用添加SSL证书的形式获得一个独立的IP。并且该IP是免费的。
同时一个(gs)帐号只能添加一个SSL证书证书,帐号下的域名共享该证书,如果需要多个域名使用证书,建议安装共享型证书。
在(mt) Media Temple买SSL证书比较贵($50 的首次设置费,$10/每月),建议在Godaddy购买。

via Can I have a static IP Address on the (gs) Grid-Service?
-EOF-

GAE SDK 1.4.0 预览版放出

Google App Engine SDK 这次貌似跳过了1.3.9版,1.4.0 预览版现在已经可以下载

比较值得期待的有如下功能:

  • Channel API已经开放给所有用户
  • URLFetch的response大小提升至32M
  • 重新提供appcfg.py download_app命令下载上传的代码
  • image缩略图大小提升至1600px

使用appcfg.py download_app只能下载自己所上传版本的代码,同时可以在控制台Permissions菜单下禁用相应版本的代码下载权限,但此操作是不可逆的,一旦禁用,就无法重新允许。
-EOF-