Forum Discussion
andreoli_4699
Nimbostratus
Jan 13, 2010HTTP::payload replace with MORE data?
Hi all, I have the following code:
when HTTP_REQUEST priority 300 {
set original_payload [HTTP::payload]
set original_length [...
spark_86682
Mar 02, 2010Historic F5 Account
The HTTP_REQUEST event will fire when all of the HTTP headers have been received. This is because most iRules are only concerned about the headers and most HTTP requests only have headers, so it would not make sense to buffer the entire payload before firing it.
Therefore, you can't count on any payload being accessible in the HTTP_REQUEST event. If any payload happens to have been received when the HTTP_REQUEST event fires, you will be able to access it in that event. This explains the behavior you're seeing with regards to packet boundaries. If you want to reliably examine or modify the payload, you should use HTTP::collect and the HTTP_REQUEST_DATA event.
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects