zoukankan      html  css  js  c++  java
  • [Resolved] Chunked HTTP/1.1 POST request support

    [Resolved] Chunked HTTP/1.1 POST request support - LiteSpeed Support Forums

    [Resolved] Chunked HTTP/1.1 POST request support - LiteSpeed Support Forums

    Sample chunked POST request:

    Code:

    POST /test.php HTTP/1.1
    User-Agent: Profile/MIDP-2.0 Configuration/CLDC-1.1
    Host: 127.0.0.1
    Transfer-Encoding: chunked
    
    6
    Hello_
    5
    World
    0

    // after last '0' there are two times CRLF, so the last 5 bytes are: 0x30, 0x0D, 0x0A, 0x0D, 0x0A

    Above request is attached as text file to this post.



    And here is the test.php:

    PHP Code:



    <?php

        $in 
    fopen('php://input''r');

        
    $text fread($in100);

        
    $size strlen($text);

        echo 
    "Text: $text<br/>";

        echo 
    "Size: $size<br/>";    

    ?>


    On Apache 2.2.11 it gives following response:

    Code:

    HTTP/1.1 200 OK
    Date: Sun, 27 Jun 2010 22:04:27 GMT
    Server: Apache/2.2.11 (Win32) PHP/5.3.0
    X-Powered-By: PHP/5.3.0
    Content-Length: 38
    Content-Type: text/html
    
    Text: Hello_World<br/>Size: 11<br/>

    I also tested this POST request on Tomcat and Jetty - works perfectly - we recive request with its content.

    (When testing it on Apache or other servers - remember not to use any proxies like Squid, cause they usually also don't support chunked POSTs).



    Unfortunetly, on LSWS the PHP $text variable leaves empty:

    Code:

    HTTP/1.1 200 OK
    Date: Sun, 27 Jun 2010 22:02:54 GMT
    Server: LiteSpeed
    Connection: close
    X-Powered-By: PHP/5.2.8
    Content-Type: text/html
    Content-Length: 26
    
    Text: <br/>Size: 0<br/>

    No data is read from "php://input". The strange thing is LSWS doesn't abort request at the begining by returing some 4xx or 5xx error - not at all. LSWS accepts the request, passes it to PHP file but drops posted content. The retured code is HTTP 200.

    All seems to be perfect but we cannot access chunked request body from PHP file.



    Such requests as above are produced by major part of today mobile devices when POST-ing large data (above 5 KB). So now, using LSWS server we cannot upload files to server from large number of mobile phones.

  • 相关阅读:
    LeetCode 501. 二叉搜索树中的众数
    LeetCode 404.左叶子之和
    LeetCode 450. 删除二叉搜索树中的节点
    LeetCode 437. 路径总和 III
    LeetCode 429. N 叉树的层序遍历
    LeetCode 213. 打家劫舍 II
    LeetCode 337. 打家劫舍 III
    LeetCode 198. 打家劫舍
    LeetCode 235. 二叉搜索树的最近公共祖先
    LeetCode 230. 二叉搜索树中第K小的元素
  • 原文地址:https://www.cnblogs.com/lexus/p/2391822.html
Copyright © 2011-2022 走看看