<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### header filter分析[](http://tengine.taobao.org/book/chapter_12.html#header-filter "永久鏈接至標題") 通常Nginx調用ngx_http_send_header函數來發送響應頭,看下它的實現: [](http:// "點擊提交Issue,反饋你的意見...") ngx_int_t ngx_http_send_header(ngx_http_request_t *r) { if (r->err_status) { r->headers_out.status = r->err_status; r->headers_out.status_line.len = 0; } return ngx_http_top_header_filter(r); } 上面的代碼中調用了ngx_http_top_header_filter,也就是header filter的頭節點,按照上一節介紹的順序,ngx_http_not_modified_filter_module是最后一個注冊的filter模塊,而最后定義的會最先執行,初始化之后,它實際上是ngx_http_not_modified_header_filter函數: [](http:// "點擊提交Issue,反饋你的意見...") static ngx_int_t ngx_http_not_modified_header_filter(ngx_http_request_t *r) { if (r->headers_out.status != NGX_HTTP_OK || r != r->main || r->headers_out.last_modified_time == -1) { return ngx_http_next_header_filter(r); } if (r->headers_in.if_unmodified_since) { return ngx_http_test_precondition(r); } if (r->headers_in.if_modified_since) { return ngx_http_test_not_modified(r); } return ngx_http_next_header_filter(r); } 而在ngx_http_not_modified_header_filter函數中,它會調用模塊內部定義的函數指針變量ngx_http_next_header_filter,而該變量保存的是上一模塊注冊的header filter函數,同樣的下一個header filter函數內部也會調用其模塊內部的ngx_http_next_header_filter,直到調用到最后一個header filter - ngx_http_header_filter。 ngx_http_header_filter,這個filter負責計算響應頭的總大小,并分配內存,組裝響應頭,并調用ngx_http_write_filter發送。Nginx中,header filter只會被調用一次,ngx_http_header_filter函數中首先會檢查r->header_sent標識是否已經被設置,如果是的話,則直接返回;否則設置該標識,并發送響應頭。另外如果是子請求的話,也會直接退出函數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看