Forum Discussion

frank_30469's avatar
Icon for Nimbostratus rankNimbostratus
Feb 09, 2011

change http method




I have the following problem:


the backend webserver sends a uri back /part1/part2.


On the F5 I need to insert something in front like: test/part1/part2.



no problem for that, I can do that with a HTTP::redirect.


The main problem is that the F5 should send the uri as a POST, but the redirect will change it to a GET.



My question now is, can this be changed?


If not, is there another solution?





3 Replies

  • Can you outline the steps a bit better? The user either does a GET or a POST (which one?) for a certain URI. What's the pool member doing exactly? Sending the user a redirect? And you want the F5 box to either send the user a different redirect, or rewrite the one that the pool member sent?
  • Client sends to the F5 appliance.


    The F5 strips the test from the request and sends to the backend.(the last part is a POST to the backend)


    The backend sends a redirect back for /part1/part2, the problem is that I need to redirect this on the F5 to /test/part1/part2.


    If I do a redirect, it will be send to the backend as a GET, not a POST. My question is, can I change the HTTP method from GET to POST?



    So, I want to send from the F5 to the backend as a POST.
  • spark_86682's avatar
    Historic F5 Account
    It may be that all you'd need to do is change the HTTP method on the second request. However, since the client is sending it as a GET, it might not be sending the body of the post request, so there might be literally no way to do what you're asking.



    Unfortunately, even if it were that easy, there is no HTTP iRule command to change the HTTP method (aka HTTP verb). You could change it at the TCP layer (using TCP::collect and TCP::payload), but you'd need to know *that* you need to change it without using any HTTP commands, which may or may be possible in your situation.



    If you want, you could open a case with support and have them add you to ID 224296, which is an RFE for providing an HTTP:: command to change the method. However, this won't solve your current problem.