[DOC] php-dws 的特别应用示例

php-dws 被设计成直接输出给用户, 这样 php script 在 HTTP 请求中被摆到了一线位置, 变成了用户直接接触, 而不像以往一样总是成为 webserver 的附属.

所以在熟悉HTTP协议后会变得非常有趣,可以实现一些在 fastcgi 中完不成的任务了。

后面会陆续举例说明,请期待!

[DOC] php-dws 的特别应用示例》上有3条评论

  1. hightman

    先来看一个对比的例子,一模一样的代码,同时在 fastcgi和 dwsgi 中执行结果对比:
    1. 查看源码,二者一致:
    php-cgi: http://root.twomice.net/dws-test/sleep.php?source
    php-dws: http://root.twomice.net/dws-test/sleep.phpd?source
    这个脚本大意就是每隔1秒输出一个数字,开头输出 255个空白符是为了兼容 IE 的某个“特性”而设。

    2. 不构造 chunked 直接输出:
    php-cgi: http://root.twomice.net/dws-test/sleep.php
    php-dws: http://root.twomice.net/dws-test/sleep.phpd

    可以看到 php-dws 的结果依次有序输出,而 php-cgi 的结果则是脚本运行完毕后由 nginx 一起输出

    3. 构造 chunked 的输出体验:
    php-cgi: http://root.twomice.net/dws-test/sleep.php?chunked
    php-dws: http://root.twomice.net/dws-test/sleep.phpd?chunked

    可以看到 php-cgi 无法识别或接受我们发出的 chunked 头, 完全把 HTTP 协议中的 chunk size 也打印到浏览器里了
    而 php-dws 能正确完成自己的 chunked body 构造,有序渐渐输出。

    这个小测试主要是显示出 dwsgi 和 fastcgi 的不同处理方式, Direct 的形式是相当于直接用用户打交道的,你的输出就是用户的看到。
    某些特殊的应用场合可能要用到,比如希望在一个多帧页面中让某一帧保持长连接,由服务端推送相关的变化信息给用户。

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注