Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Obliger mod_proxy_http Envoyer une réponse asynchrone (sans pour autant 100 Continue)

Mécanisme de servollets (Jetty) Fonctionne pour le serveur Apache Httpd, Transféré en utilisant

mod_proxy_http

. Il lance un petit servlet qui prend

PUT

Demandes et authentifié à l'aide de l'authentification de base HTTP (traité par B. Jetty).

Avec droit (sans proxy)

PUT

Demande S.

curl

, Utilisation d'informations d'identification incorrectes pour l'authentification, le serveur renvoie le code d'état. 401, comme prévu:

curl -v -T testfile -u user:WRONG_PASSWORD [url=http://localhost:8080/myservlet/]http://localhost:8080/myservlet/[/url]

Cela interrompt les demandes, dès que le code d'état est obtenu, de sorte que curl ne charge pas tout le corps et s'arrête avant (

HTTP error before end of send, stop sending

).

* About to connect() to localhost port 8080 (#0)
* Trying 127.0.0.1... connected
* Server auth using Basic with user 'user'
> PUT /myservlet/testfile HTTP/1.1
> Authorization: Basic xxxxxxxxxxxxxxxxx
> User-Agent: curl/7.22.0
> Host: localhost:8080
> Accept: */*
> Content-Length: 3672
> Expect: 100-continue
>
< HTTP/1.1 401 Unauthorized
< Date: xxxxxxxxxxxxxxxx
* Authentication problem. Ignoring this.
< WWW-Authenticate: basic realm="Test Realm"
< Content-Length: 0
< Server: Jetty(7.4.5.v20110725)
* HTTP error before end of send, stop sending
<
* Closing connection #0

Au contraire, quand derrière

mod_proxy_http

, il y a

100 Continue

Réponse envoyée presque immédiatement Apache Httpd, lequel à curl Interprète comme

continue

, alors il envoie toute la demande (

We are completely uploaded and fine

) avant qu'il obtiennent finalement

401

répondre.

*   Trying 127.0.0.1... connected
* Server auth using Basic with user 'user'
> PUT /myservlet/testfile HTTP/1.1
> Authorization: Basic xxxxxxxxxxxxxxxxx
> User-Agent: curl/7.22.0
> Host: localhost
> Accept: */*
> Content-Length: xxxxxx
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 401 Unauthorized
< Date: xxxxxxxxxxxxxxxx
< Server: Jetty(7.4.5.v20110725)
* Authentication problem. Ignoring this.
< WWW-Authenticate: basic realm="Test Realm"
< Content-Length: 0
< Via: 1.1 localhost
< Content-Type: xxxxxxxxxxxxxx
<
* Connection #0 to host localhost left intact
* Closing connection #0

Y a-t-il un moyen d'empêcher

mod_proxy_http

D'utilisation

100 Continue

code et faites-le attendre

401

Code d'état d'un serveur interne avant d'envoyer la première réponse?

J'ai essayé de suivre
https://serverfault.com/a/302539/47187
, Mais cela n'a pas résolu le problème (En tout cas, ce n'était pas le même problème.):

    ProxyPass /myservlet/ [url=http://localhost:8080/myservlet/]http://localhost:8080/myservlet/[/url]
<location myservlet=""></location>
RequestHeader unset Expect early

Invité:

Pour répondre aux questions, connectez-vous ou registre