• Super User

    Quiz su redirezioni e birra gratis

    Ciao a tutti.

    Offro una birra (nel senso che al prossimo aperitivo che faccio a Milano vi invito e vi pago una birra) alla persona che saprà darmi la risposta più corretta ed esaustiva alla seguente domanda SEO:

    Secondo gli standard, qual'è il codice di status HTTP da usare per comunicare agli spider una redirezione temporanea da una pagina all'altra?

    Sconsiglio di farsi ingannare dall'apparente semplicità del quiz. In realtà è subdolo assai.

    A parità di risposte corrette sceglierò una persona a caso, perché altrimenti potrei spendere troppo in birra. 😄


  • Super User

    @LowLevel said:

    Secondo gli standard, qual'è il codice di status HTTP da usare per comunicare agli spider una redirezione temporanea da una pagina all'altra?
    302

    Ho vinto qualche cosa?
    :smile5:


  • User Newbie

    Secondo RFC 2616 il codice corretto dovrebbe essere 307.
    Cito da w3.org/Protocols/rfc2616/rfc2616-sec10.html (il grassetto è mio):
    10.3.8 307 Temporary Redirect

     **The requested resource resides temporarily under a different URI**.    Since the redirection MAY be altered on occasion, the client SHOULD    continue to use the Request-URI for future requests.  This response    is only cacheable if indicated by a Cache-Control or Expires header    field. 
     The temporary URI SHOULD be given by the Location field in the    response. Unless the request method was HEAD, the entity of the    response SHOULD contain a short hypertext note with a hyperlink to    the new URI(s) , since many pre-HTTP/1.1 user agents do not    understand the 307 status. Therefore, the note SHOULD contain the    information necessary for a user to repeat the original request on    the new URI. 
     If the 307 status code is received in response to a request other    than GET or HEAD, the user agent MUST NOT automatically redirect the    request unless it can be confirmed by the user, since this might    change the conditions under which the request was issued.

  • User Newbie

    .... Se qualcuno si stesse chiedendo perché esiste il codice 307 quando c'è il 302 che sembra avere medesima semantica, il tutto è spiegato qui (cito la stessa fonte di prima):
    Note: RFC 1945 and RFC 2068 specify that the client is not allowed
    to change the method on the redirected request. However, most
    existing user agent implementations treat 302 as if it were a 303
    response, performing a GET on the Location field-value regardless
    of the original request method. The status codes 303 and 307 have
    been added for servers that wish to make unambiguously clear which
    kind of reaction is expected of the client.


  • User Attivo

    302


  • User

    E per farmelo pesare (che lui è il miglioooooore) è venuto alla mia scrivania e mi ha fatto la domanda... 🙂 credendo che il mio smalto SEO sia perso tra le mie scartoffie...

    Ho risposto in maniera corretta, ma visto che la birra a Low la scrocco lo stesso 🙂 non scriverò la risposta in pubblico.

    Ma il gusto di avergli risposto correttamente non ha prezzo...
    🙂

    Vero Low?

    p.s.
    puoi anche dire che ho mentito spudoratamente 😉


  • Super User

    @Pescatore Informatico said:

    Vero Low?

    No, non ci hai azzeccato. :tongueout:

    La risposta "302" non è corretta.
    La risposta "307" non è corretta.

    La risposta giusta sul codice da usare per comunicare agli spider una redirezione temporanea è: "dipende".

    Ma da cosa dipende dovete dirmelo voi. 😄


  • Community Manager

    Se il redirect deve tornare alla pagina originaria o ad una nuova 😄


  • User Attivo

    ...la domanda era sufficientemente ingannevole, ma di estremo interesse, complimenti a Low sempre molto profondo nei suoi interventi.

    Sono d'accordo con Giorgio. Il redirect è in relazione allo scopo a cui e destinato, ma se parliamo strettamente di redirect temporaneo, l'unico vero è il 302.

    Io conosco questi redirect :301 - spostatamento definitivo, usato spesso dai seo
    302 - spostamento temporaneamente
    303 - sostituzione
    410 - rimozione

    ve ne sono altri ?

    in ogni caso l'occasione mi è gradita per farvi questa domanda: se per un motivo si mette un'intero dominio a redirect 301 verso un altro e dopo un po' di tempo il dominio torna a funzionare con le proprie risorse, e argomentazione equivalente, come si comporta google : si accorge subito del cambiamento oppure lo mette sotto osservazione o capita altro ? Si doveva mettere in redirect 302 fin dall'inizio? ed in caso come fare e quanto tempo ci si impiega prima che le cose si aggiustino ? :mmm:

    Attendo vostre risposte

    Grazie mille


  • User
    • 302

    • se lo user-agent non supporta il protocollo http 1.1 e quindi non conosce 303 e 307

    • oppure se si redirige in risposta a un get o head

    • oppure se si vuole suggerire allo spider di tenere in cache la risposta 302

    • 303 se si redirige in risposta a un POST e si vuole che lo spider legga la seconda pagina con una richiesta di tipo GET

    • 307 se si redirige in risposta a un POST e si vuole che lo spider non trasformi la seconda chiamata in un GET

    • 404 se si vuole redirigere a "pagina non trovata"

    • 301 se "temporanea" significa "solo per i prossimi 30 anni"

    • 300 se, per prendere tempo in momento di difficoltà, vogliamo confondere lo spider presentandogli una scelta multipla
      Ciao,
      Emilio


  • User

    @LowLevel said:

    No, non ci hai azzeccato. :tongueout:

    La risposta "302" non è corretta.
    La risposta "307" non è corretta.

    La risposta giusta sul codice da usare per comunicare agli spider una redirezione temporanea è: "dipende".

    Ma da cosa dipende dovete dirmelo voi. 😄

    🙂
    Bene un buon motivo per fare un corso di aggiornamento personalizzato.


  • Community Manager

    @Emiliok said:

    • 301 se "temporanea" significa "solo per i prossimi 30 anni"

    :eheh:

    Scusate...non ho resistito 😄


  • User Attivo

    Ma alla fine qui la birra l'ha vinta qualcuno? 😄


  • User Attivo

    @Emiliok said:

    • 302

    • se lo user-agent non supporta il protocollo http 1.1 e quindi non conosce 303 e 307

    • oppure se si redirige in risposta a un get o head

    • oppure se si vuole suggerire allo spider di tenere in cache la risposta 302

    • 303 se si redirige in risposta a un POST e si vuole che lo spider legga la seconda pagina con una richiesta di tipo GET

    • 307 se si redirige in risposta a un POST e si vuole che lo spider non trasformi la seconda chiamata in un GET

    • 404 se si vuole redirigere a "pagina non trovata"

    • 301 se "temporanea" significa "solo per i prossimi 30 anni"

    • 300 se, per prendere tempo in momento di difficoltà, vogliamo confondere lo spider presentandogli una scelta multipla

    Ciao,
    Emilio

    Ciao Emilio,

    mi stai dicendo che se ho intenzione di utilizzare un dominio precedentemente in redirect 301 verso un altro la cosa non è fattibile, o meglio google me lo considera sempre e comunque in redirect 301, avendo passato tutti i valori ? Oppure in che modo puoi far capire a google che il dominio a ripreso a funzionare con una propria identità? Per capirci dopo aver tolto il redirect 301 per google è come se conoscesse un dominio nuovo, avedno passato i valori al dominio del redirect, oppure mantiene comunque la storia anche passata precedente al redirect 301 ?

    Per un posizionamento utilizzeresti un altro dominio in non redirect 301 e come è possibile conoscere se il dominio era precedentemente in 301 verso qualche altro dominio ?

    Per redirect temporaneo 302 si intende indefinitivamente , nel senso che prima o poi la pagina o il dominio tornerà a funzionare oppure esiste un time per google che viene considerato ?

    Grazie mille


  • Super User

    Ciao Markus_292,

    non ci ho mai provato, ma provo a risponderti ugualmente

    @Markus_292 said:

    mi stai dicendo che se ho intenzione di utilizzare un dominio precedentemente in redirect 301 verso un altro la cosa non è fattibile, o meglio google me lo considera sempre e comunque in redirect 301, avendo passato tutti i valori ?
    Secondo me è fattibile, solo che non è ben chiaro cosa significhi averne passato tutti i valori!

    Mettiamo che il sito A linki il sito B.

    Poi il sito B faccia un 301 sul sito C.
    Finché la situazione rimane questa il valore di B è stato passato a C.

    Poi tolgo il 301.....
    Ma a questo punto il link di A punta ancora a B?

    Mettiamo che la risposta sia "si" (secondo me è la cosa più probabile).
    Per google quel link sarà rivolto a B (in quanto punta a B) oppure continua
    a conteggiarlo a C?

    Secondo me la risposta è un bel dipende (da chi sei, cosa ci fai, quanto tempo è durato il 301, ecc.).

    @Markus_292 said:

    Per capirci dopo aver tolto il redirect 301 per google è come se conoscesse un dominio nuovo, avedno passato i valori al dominio del redirect, oppure mantiene comunque la storia anche passata precedente al redirect 301 ?
    NON è un dominio nuovo, ma un dominio che nel bene o nel male ha una sua storia.

    Personalmente la scelta la farei in base a questa storia...

    @Markus_292 said:

    Per redirect temporaneo 302 si intende indefinitivamente , nel senso che prima o poi la pagina o il dominio tornerà a funzionare oppure esiste un time per google che viene considerato ?
    Secondo me quello che succede è che google mantiene l'URL nel suo database aspettandosi che prima o poi torni a funzionare.

    :ciauz:


  • Super User

    Low, erudiscici!
    :bigsmile:

    Mi sa che per questo giro ognuno pagherà la sua di birra
    :giggle:


  • User Attivo

    ... grazie mille Stefano, giustamente si deve conoscere la storia di quel dominio. Nel caso si riutilizzasse un dominio che prima era in 301 verso un altro , il ripristino e l'indicizzazione è immediata o si deve attendere un bel po', forse fino a quando google non aggiorni link. Per velocizzare la cosa, cosa faresti incrementeresti i backlink , cercando quelle pagine che abbiano un maggiore trust rank o ti comporteresti in altro modo ?

    Grazie ancora per avermi risposto , non credo sia facile rispondere a tale domanda o meglio ho trovato pochi case history segnificative in merito


  • Super User

    Solo due righe per dirvi che adesso sto crollando dal sonno e che quindi posterò una risposta dettagliata nel weekend. 🙂

    Vi posso preannunciare che i vincitori della birra sono due, per ragioni diverse. 😉


  • Super User

    Ciao Markus_292,

    come ti dicevo, io non l'ho mai fatto, quindi prendi con le molle quello
    che ti dico.

    @Markus_292 said:

    Per velocizzare la cosa, cosa faresti incrementeresti i backlink , cercando quelle pagine che abbiano un maggiore trust rank o ti comporteresti in altro modo ?
    Esattamente, incrementerei i backlink con siti a tema.

    Secondo me questo dovrebbe essere sufficiente, soprattutto se
    i dati di whois sono cambiati.

    :ciauz:


  • Super User

    Eccomi qua.

    Innanzitutto i premi, che sono due:

    Il primo premio va a Emiliok, per l'esaustività della risposta. Purtroppo non è esatta per quanto riguarda l'utilizzo del codice 307, che non si applica necessariamente in risposta ad un metodo POST.

    Il secondo premio va a Stefano, perché per primo ha risposto "302".

    Adesso la spiegazione:

    Secondo il protocollo HTTP 1.1, lo status corretto da erogare è il 307.

    Tuttavia si pongono due problemi:

    • Alcuni client non supportano il protocollo HTTP 1.1. A questi client non possiamo erogare il 307 ma dobbiamo usare il 302;
    • Alcuni client che **supportano **il protocollo HTTP 1.1 (e ai quali sarebbe corretto erogare 307) dichiarano volutamente di supportare solo la versione 1.0. Uno di questi client è, ad esempio... lo spider di Yahoo!.

    Soluzione finale:

    A meno di non progettare la gestione delle redirezioni temporanee prendendo in considerazione tutti i fattori possibili (versione HTTP usata del client, eccezioni per i client che dichiarano falsamente un protocollo vecchio, ecc.), purtroppo l'unico modo pratico per gestire le redirezioni temporanee è continuare ad usare il 302, in barba ai protocolli. 😞

    Questo non significa che non si possa seguire scrupolosamente i protocolli e progettare una gestione delle redirezioni perfetta, tenendo conto di tutte le eccezioni. Solo che sarebbe piuttosto rompiballe, se si tiene conto del fatto che non sappiamo quanti e quali client dichiarano falsamente un HTTP 1.0 invece che 1.1.

    Questo è quanto. 🙂

    Per le birre, farsi avanti in privato. 🙂