Re: Manipulate Request Headers after Redirect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you for your answer!

You are more or less correct - And as I saw it to be too much work (or
just more or less impossible) I changed my approach to the problem.

I am now sending several separated request with JavaScript (jQuery to
be exact) without a 302, since I know in advance where I'll have to go
anyway.

So this issue can be considered closed!

Sincerely yours
Louis

2011/6/24 Arthur Moczulski <arthur.moczulski@xxxxxxxxx>:
> Hey,
> this is what I understand: you want to manipulate headers of the request
> sent by the client directly after receiving a 302 response?
> If that's the case, than read further ;)
> Any client goes through the following process while communicating with a
> web-server:
> 1. get IP address from the domain (achieved thanks to DNSs)
> 2. create an IP socket connection with the obtained IP address
> 3. write an HTTP request through the socket
> 4. receive an HTTP response from the web-server. the "answer" will include
> status compatible with the HTTP protocol.
> In your example this process is repeated twice:
> 1. get ip of domain using dns
> 2. open a connection
> 3. write an http request to the socket
> 4. receive http with 302 status
> (the client as an http protocol compliant software continues with the
> alternative url provided by the 302 response)
> 5. get ip of domain specified as alternative url in received 302 using dns
> 6. open a new connection
> 7. write an http request to the newly opened socket
> 8. receive http response from web-server
> Your problem is exactly between point 4 and 5. Unfortunately for you that's
> client software's work to determine what will be done next. HTTP compliant
> software (which every browser is) will follow the redirection. So, unless a
> client provides you with some way of manipulating this behaviour, which is
> quite unlikely, this can't be done.
> Javascript won't be too much help in here as js scripts loaded into the
> browser live only in the lifetime of displaying the specific response. As
> 302 responses can't include any content like javascript code which can live
> in the lifetime of processing the response, so you can't control what's
> going on in here.
> The only way that comes my mind is to check if 302 response can hold any
> "force behaviour" sort of information which is taken under consideration by
> the client. Unfortunately, I don't think HTTP protocol specification defines
> anything like that (however something definitely worth checking).
> What you can try though is extending whole the communication between client
> and web-server. So:
> 1. send the original request
> 2. receive the 302 response
> 3. send the request for alternative url
> 4. web-server checks the referrer of the request received and sends an
> answer needed, so you receive a response which guides your client
> To achieve that you need an access to the server-side application.
> Let me know if that's any help.
> On 24 June 2011 08:37, Louis Huppenbauer <louis.huppenbauer@xxxxxxxxx>
> wrote:
>>
>> Thanks for your response, but I don't think that will do.
>>
>> First - SERVER_PORT is the port the apache/iis/whatever server is
>> working with (usually 80 or 443)
>> Second - That would still be manipulating the headers for the response
>> (As php mostly just generates the response, and not the request).
>>
>> I'm thinking more and more that this is not really a php-question (as
>> it is server-side), but more of a js-question (client-side).
>>
>> thanks anyway!
>> louis
>> 2011/6/24  <admin@xxxxxxxxxxxxxxxxxxx>:
>> > Try
>> >
>> >
>> > If($_SERVER['SERVER_PORT'] == "302")
>> > {
>> > header('Referer: example.net');
>> > }
>> >
>> >
>> > Richard L. Buskirk
>> >
>> > -----Original Message-----
>> > From: Louis Huppenbauer [mailto:louis.huppenbauer@xxxxxxxxx]
>> > Sent: Friday, June 24, 2011 3:05 AM
>> > To: php-general@xxxxxxxxxxxxx
>> > Subject:  Manipulate Request Headers after Redirect
>> >
>> > Hi there!
>> >
>> > I just have a small question concerning the http-protocol and php (and
>> > in specific the header-function, i think).
>> > Is it possible to manipulate the headers for the request which is sent
>> > after a 302-header?
>> >
>> >
>> > eg:
>> >
>> > Response:
>> > header('Referer: example.com');
>> > header('Location: example.net');
>> >
>> > Request (for the 302):
>> > header('Referer: example.net');
>> > header('Cache: max-age=0);
>> >
>> >
>> > I think I need that for a login to a tomcat app from an external
>> > php-form. As of now the Login works fine, I just have to reload the
>> > page to actually be logged in (and that is quite a bother).
>> >
>> >
>> > Sincerely yours
>> > Louis
>> >
>> > --
>> > PHP General Mailing List (http://www.php.net/)
>> > To unsubscribe, visit: http://www.php.net/unsub.php
>> >
>> >
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux