Hello! On Wed, Dec 13, 2023 at 03:55:56PM +0800, Muhammad Nuzaihan wrote:
> I need to process requests with only URI path (without body) for a module. > > It seems ngx_http_request_body_filter_pt is *not* executed whenever > there is a request without a body (it looked like it bypassed without > request body) and only ngx_http_output_body_filter_pt part of the > code is executed. > > For example i do a request curl curl like this: > > curl -vvvv -X POST http://localhost:8080/proxy/profile/alice/comment > > and i need to validate /proxy/profile/alice/comment in my module and > there is no http headers and no body. Only URI path. When reading an HTTP request, nginx reads the request line and request headers, and then starts request processing by passing it through as sequence of request processing phases - in each phase, corresponding handlers are called. The request body filters are only called if there is a request body, and some handler actually requested reading of the request body - so it's expected these are not called if there is no request body. If you want to handle request based on the request line and the request headers, consider using appropriate phase handler, see https://nginx.org/en/docs/dev/development_guide.html#http_phases and the source code for details. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel