httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shmuel Krakower <shmul...@gmail.com>
Subject Re: [users@httpd] Control / Modify the HTTP Status Line
Date Thu, 23 May 2019 06:18:24 GMT
Thanks Torsten,
I was reading and implementing a simple PerlResponseHandler script to set
the response status line/code.
It works fine as a standalone, but it seems like in conjuction with
mod_proxy, it has no affect.

It feels like this handler is not manipulating the response coming back
from the backend server.
Maybe there is a config to control the order of handlers? not sure...

Any ideas are welcome

Shmuel Krakower.


On Wed, 22 May 2019 at 23:42, Torsten Krah <krah.tm@gmail.com> wrote:

> Hi,
>
> you could use a mod_perl output filter handler to rewrite the response to
> your needs based on the input.
> Did that for some specific SaaS years ago and for some response with e.g.
> a special header the filter answered somerhing totally different and
> discarded the original response.
>
> Happy coding :-)
>
> Cheers
>
> Shmuel Krakower <shmulikk@gmail.com> schrieb am Mi., 22. Mai 2019, 22:29:
>
>> Hi matt and lbutlr
>> Thanks for the response.
>>
>> I guess I should add few pieces of information.
>> The client is one SaaS and the backend is another SaaS. The backend
>> returns 302 which is right but the client consider anything which is not
>> 2xx as error which cause it to retry.
>>
>> Therefore I must "hack" or stitch it with a proxy. I am using mod_proxy.
>> My other alternative is to use other software than httpd to stitch those
>> two services and show 200 instead of the 302.
>>
>> The solution mentioned in stackoverflow will not work for 302 response as
>> I cannot set error page for such non-error response codes.
>>
>> The solution with rewrite won't work neither as I need to alter the
>> response and not the request.
>>
>>
>> On Wed, May 22, 2019, 10:37 PM Muggeridge, Matt <matt.muggeridge2@hpe.com>
>> wrote:
>>
>>> With a little googling, this technique looks promising…
>>> https://stackoverflow.com/questions/15083481/how-can-i-replace-apache-http-code-404-to-200
>>>
>>>
>>>
>>>    - As I cannot alter the backend behaviour
>>>
>>>
>>>
>>> Yet, you talk about using mod_substitute and mod_header to alter the
>>> server’s behaviour.  If the 302 responses are not valid, then hunt down and
>>> fix/remove the ‘redirect’ configuration options in either a .htaccess or
>>> some other configuration file.
>>>
>>>
>>>
>>> Matt.
>>>
>>>
>>>
>>> *From:* Shmuel Krakower <shmulikk@gmail.com>
>>> *Sent:* Thursday, 23 May 2019 4:00 AM
>>> *To:* users@httpd.apache.org
>>> *Subject:* [users@httpd] Control / Modify the HTTP Status Line
>>>
>>>
>>>
>>> Hello,
>>>
>>> This is my first message on this user list, hope that's the right place
>>> for my question.
>>>
>>>
>>>
>>> I am using Apache for proxying a backend server.
>>>
>>> The backend server may return, in some occaisons, a 302 response code
>>> for successful requests.
>>>
>>> As I cannot alter the backend behavior nor the client's to consider such
>>> 302 responses as successful, I am looking for a way to manipulate the
>>> response code on Apache.
>>>
>>>
>>>
>>> While going through the options in and trying ways to alter data which
>>> is sent back to clients I found two:
>>>
>>> 1. mod_substitute - to manipulate respose body.
>>>
>>> 2. mod_header - to manipulate respose headers.
>>>
>>>
>>>
>>> The problem is that the HTTP Status Line (the very first line returned
>>> by apache) cannot be altered by neither of these modules.
>>>
>>> I was also trying to set the response code in various response headers
>>> but none seem to make any affect on the Status Line contents.
>>>
>>>
>>>
>>> Does anyone know of a way to manipulate the HTTP Status Line or how to
>>> internal process of apache works to determine the Status Line (maybe this
>>> way I can cause it to generate a different status line).
>>>
>>>
>>>
>>> Thanks,
>>>
>>> Shmuel Krakower.
>>>
>>

Mime
View raw message