Newsgroup: it.comp.os.linux.sys
Titolo: Apache 2.16 (debian squeeze) e HTTP/1.0

Ciao a tutti,
Il mio apache 1.0 restituisce 403 Forbidden a tutte le richieste HTTP/1.0.
 
Il nostro cliente ha uno squid 2.6 che ribalta tutte le richieste da
HTTP/1.1 ad HTTP/1.0.
 
Come esco da questo cul de sac?
 
Grazie,
g4b0

 Come esco da questo cul de sac?
 
Il mio consiglio prima è capire la causa poi guardare sulla documentazione 
ed eventualmente su google per trovare la soluzione.
 
Solo se non ne trovi, allora venire sul NG a spiegare bene le cause ed i 
dettagli per mettere in grado chi legge di capire il problema e darti 
consigli sensati.
 
 
 

 ed eventualmente su google per trovare la soluzione.
 
Speravo di recuperare la causa proprio qui, magari dall'esperienza
diretta di qualcun'altro. Su google ci ho passato due mezze giornate, ma
cercavo la cosa sbagliata. Apache 2 gestisce tranquillamente HTTP 1.0 di
default, il problema era annidato in una regexp balorda dentro all'htaccess.
 
g4b0
 
P.S.
Ma HTTP 1.0 lo usa ancora qualcuno? Forse è il caso che $CLI aggiorni il
suo squid 2.6?

 suo squid 2.6?
 
Anche in questo caso hai cercato poco o male.
 
http://wiki.squid-cache.org/Features/HTTP11
 
 
Squid supporta quasi completamente l'HTTP/1.1 solo che tu usi una 
versione obsoleta.

>> suo squid 2.6?
 
Il $CLI di cui parlo ha una sua infrastruttura informatica, noi gli
abbiamo semplicemente fatto il sito al quale non riusciva ad accedere,
pensavo si evincesse dal contesto.
 
 

>>> suo squid 2.6?
 
Per quanto ricordo, HTTP/1.0 non supporta l'header Host:, quindi in 
pratica non dovrebbe funzionare il 90% dell'Internet moderna, basata su 
NameVirtualHost.
 
Io direi che è il caso di aggiornarlo.
 
Bye.
 

 domanda poco sopra)
 
Rabbia ?
 
Semplicemente stavo facendoti capire che poni le domande alla pene di 
segugio
 
Ho pure cercato di essere costruttivo e fartelo capire invece di fornirti 
un semplice RTFM.
 
Se ti devi risentire per questo non ti risponderò più.

 Se ti devi risentire per questo non ti risponderò più.
 
Non sono risentito, rispondiamoci pure a vicenda, che già USENET si sta
spopolando, se iniziamo le faide interne la chiudiamo...

 Io direi che è il caso di aggiornarlo.
 
Anche io, ma a quanto pare non hanno intenzione di farlo. Problemi loro,
il workaround per il nostro sito l'ho trovato, non vado ad infilarmi in
quel ginepraio, tenendo conto che si tratta di una Pubblica
Amministrazione che ha subappaltato la gestione della rete iterna.

 spopolando, se iniziamo le faide interne la chiudiamo...
 
Faide ?
 
L'importante è che almeno qui su usenet si tenti di avere ancora un pò di 
know how e competenza.
 
Altrimenti ci si riduce come i tanti forum per bombiminkia(TM) che ci 
sono fuori.
 

 
 
Non capisco, fa una richiesta 1.0 attaccandoci però l'header "Host:"?


Qualcosa del genere. Secondo me semplicemente forwarda la richiesta
originale, aggiungendo gli header classici del proxy e sostituendo 1.1
con 1.0. Il motivo mi è ignoto, ma pare funzionicchiare. Tranne che
verso il mio server, off course :)

 verso il mio server, off course :)
 
Conoscendo HTTP e Squid, il motivo è chiaro:
 
1) Squid potrebbe forwardare ad un server con supporto a HTTP/1.1 e multipli 
host ma non lo sa. Non sapendolo, aggiunge quell'header. Nel caso di 
HTTP/1.1 è necessario che ci sia per farlo funzionare correttamente e nel 
caso di HTTP/1.0 è inutile o ridondante.
 
Squid, quindi, aggiungendo quell'header, non fa nulla di male e può ignorare 
quale protocollo supporti il server upstream e avere il funzionamento 
previsto garantito. Nota che la RFC richiede che ogni proxy forwardi SEMPRE 
quell'header e lo aggiunga ove manchi.
 
 
2) Altera il protocollo a 1.0 perchè la versione che usi supporta solo 
quello.
 
Di base, comunque (avendone avuto a che fare pesantemente con i proxy HTTP) 
la differenza sostanziale che si trova a livello implementativo tra 1.0 e 
1.1 nel mondo reale è che l'1.1 supporta più richieste per connessione e la 
1.0 richiede un connection: close per ogni richiesta (quindi 1 connessione 
== 1 richiesta).
 
Ci sono in giro dei proxy HTTP/1.0 (vedasi tinyproxy, ad esempio) che fanno 
lo stesso lavoro di forzare il protocollo a 1.0. Tinyproxy, in particolare, 
è buggatissimo su questo fronte (*).
 
 
(*) Mi sono dovuto scrivere un proxy scalabile per risolvere queste 
problematiche ancora irrisolte.