jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: svn commit: r1538291 - in /jmeter/trunk: src/protocol/http/org/apache/jmeter/protocol/http/sampler/ src/protocol/http/org/apache/jmeter/protocol/http/util/ xdocs/
Date Thu, 05 Dec 2013 16:19:02 GMT
On 5 December 2013 12:52, Philippe Mouawad <philippe.mouawad@gmail.com> wrote:
> Hello sebb,
> I missed the fact it was a draft , thanks for pointing at this.
>
> How come Java implementation handles it ?
> Do you think we should rollback this or documenting it is enough ?
>
> Can you point me to the paragraph in RFC2616 that talks about Location , is
> it this one:
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30

Yes; that says:

Location       = "Location" ":" absoluteURI

> So it means we didn't have a bug ? just a change in behaviour as we handled
> it according to draft in previous versions < 2.10?

Depends how you class a bug.

Unfortunately servers don't always follow the specs - or the specs may
take a while to be updated.

So sometimes JMeter may need to be more lenient than should be necessary.

As I already wrote, we need to ensure that the code and documentation
is clear on what we are trying to support.
In this case, if a server keeps to RFC 2616 JMeter will still behave correctly.
The additional processing for non-absolute URLs does not affect this,
but it does mean that JMeter should be able to cope better with the de
facto behaviour of some servers.

We could perhaps make the new processing depend on a property, so that
users could switch it off in order to revert to strict RFC2616 mode.
In this case I think it makes sense to allow the relaxed behaviour by
default, as it does not affect well-behaved servers.

> Regards
> Philippe
>
>
> On Mon, Dec 2, 2013 at 1:07 AM, sebb <sebbaz@gmail.com> wrote:
>
>> I've just looked again at this.
>>
>> RFC 2616 only allows Location to be an absolute URL.
>>
>> There does not seem to be a current RFC that allows any other kind of URL.
>>
>> The latest version of draft-ietf-httpbis-p2-semantics [1] has yet to
>> be ratified.
>>
>> At the very least I think we need to document the code to say that the
>> behaviour follows a document that has yet to be ratified.
>>
>> [1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-25
>>
>> On 30 November 2013 09:24, Philippe Mouawad <philippe.mouawad@gmail.com>
>> wrote:
>> > Hello,
>> > Any feedback?
>> > Thanks
>> >
>> > On Sunday, November 10, 2013, Philippe Mouawad wrote:
>> >
>> >> Did you look at the rfc I pointed at in bugzilla?
>> >> It is allowed to have relative references .
>> >> Or I misunderstand the issue you are pointing at.
>> >>
>> >> With fix we behave like java implementation.
>> >>
>> >> Regards
>> >>
>> >> On Thursday, November 7, 2013, sebb wrote:
>> >>
>> >>> On 6 November 2013 02:11, Philippe Mouawad <philippe.mouawad@gmail.com
>> >
>> >>> wrote:
>> >>> > Is there something wrong or it's just a note ypu make ?
>> >>> > Thanks for clarifying.
>> >>>
>> >>> It may be something wrong. We should not change location URLs except
>> >>> those that are supposed to be changed.
>> >>>
>> >>> It would therefore be better (and simpler) to check the location URL
>> >>> and fix up any that start with "/" - any others can be left alone.
>> >>>
>> >>> > On Wednesday, November 6, 2013, sebb wrote:
>> >>> >
>> >>> >> On 2 November 2013 21:53,  <pmouawad@apache.org> wrote:
>> >>> >> > Author: pmouawad
>> >>> >> > Date: Sat Nov  2 21:53:49 2013
>> >>> >> > New Revision: 1538291
>> >>> >> >
>> >>> >> > URL: http://svn.apache.org/r1538291
>> >>> >> > Log:
>> >>> >> > Bug 55717 - Bad handling of Redirect when URLs are in
relative
>> >>> format by
>> >>> >> HttpClient4 and HttpClient31
>> >>> >> > Bugzilla Id: 55717
>> >>> >> >
>> >>> >> > Modified:
>> >>> >> >
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java
>> >>> >> >
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
>> >>> >> >
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/ConversionUtils.java
>> >>> >> >     jmeter/trunk/xdocs/changes.xml
>> >>> >> >
>> >>> >> > Modified:
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java
>> >>> >> > URL:
>> >>> >>
>> >>>
>> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java?rev=1538291&r1=1538290&r2=1538291&view=diff
>> >>> >> >
>> >>> >>
>> >>>
>> ==============================================================================
>> >>> >> > ---
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java
>> >>> >> (original)
>> >>> >> > +++
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java
>> >>> >> Sat Nov  2 21:53:49 2013
>> >>> >> > @@ -321,7 +321,12 @@ public class HTTPHC3Impl extends
HTTPHCA
>> >>> >> >                      throw new IllegalArgumentException("Missing
>> >>> >> location header");
>> >>> >> >                  }
>> >>> >> >                  try {
>> >>> >> > -
>> >>> >>  res.setRedirectLocation(ConversionUtils.sanitizeUrl(new
>> >>> >> URL(headerLocation.getValue())).toString());
>> >>> >> > +                    String redirectLocation =
>> >>> headerLocation.getValue();
>> >>> >> > +                    if(!(redirectLocation.startsWith("http://
>> >>> >> ")||redirectLocation.startsWith("https://"))) {
>> >>> >> > +                        redirectLocation =
>> >>> >> ConversionUtils.buildFullUrlFromRelative(url, redirectLocation);
>> >>> >> > +                    }
>> >>> >> > +
>> >>> >> > +
>> >>> >>  res.setRedirectLocation(ConversionUtils.sanitizeUrl(new
>> >>> >> URL(redirectLocation)).toString());
>> >>> >> >                  } catch (Exception e) {
>> >>> >> >                      log.error("Error sanitizing
>> >>> >> URL:"+headerLocation.getValue()+", message:"+e.getMessage());
>> >>> >> >                  }
>> >>> >> >
>> >>> >> > Modified:
>> >>> >>
>> >>>
>> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
>> >>> >> > URL:
>> >>> >>
>> >>>
>> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1538291&r1=1538290&r2=1538291&view=diff
>> >>> >> >
>> >>> >>
>> >>>
>> ==============================================================================
>> >>> >> > ---
>> >>> >> jmeter/trunk/src/protocol/
>> >>
>> >>
>> >>
>> >> --
>> >> Cordialement.
>> >> Philippe Mouawad.
>> >>
>> >>
>> >>
>> >>
>> >
>> > --
>> > Cordialement.
>> > Philippe Mouawad.
>>
>
>
>
> --
> Cordialement.
> Philippe Mouawad.

Mime
View raw message