HTTP / 1.1 opgraderingshoved - HTTP/1.1 Upgrade header

Feltet Upgrade header er et HTTP-headerfelt introduceret i HTTP / 1.1 . I udvekslingen begynder klienten med at fremsætte en klar tekstanmodning , som senere opgraderes til en nyere HTTP- protokolversion eller skiftes til en anden protokol. En forbindelsesopgradering skal bestilles af klienten; hvis serveren ønsker at håndhæve en opgradering, kan den sende et 426 Upgrade Required svar. Klienten kan derefter sende en ny anmodning med de relevante opgraderingshoveder, mens forbindelsen holdes åben.

Brug med TLS

Én anvendelse er at starte en anmodning om den normale HTTP-port, men skifte til Transport Layer Security (TLS). I praksis er sådan anvendelse sjælden, idet HTTPS er en langt mere almindelig måde at initiere krypteret HTTP på.

Serveren returnerer en 426 statuskode for at advare ældre klienter om, at fejlen var klientrelateret ( 400 niveaukoder angiver en klientfejl).

Denne metode til etablering af en sikker forbindelse er fordelagtig, fordi den:

  • Kræver ikke rodet og problematisk URL-omdirigering på serversiden;
  • Aktiverer virtuel hosting af sikre websteder (skønt HTTPS også tillader dette ved hjælp af servernavnindikation ); og
  • Reducerer potentialet for brugerforvirring ved at give en enkelt måde at få adgang til en bestemt ressource på.

Hvis de samme ressourcer er tilgængelige fra serveren via både krypterede sikre midler og ukrypterede klare midler, kan en mand-i-midten muligvis opretholde en ukrypteret og uautoriseret forbindelse med klienten, mens den opretholder en krypteret forbindelse til serveren.

Ulemper ved denne metode inkluderer:

  • Klienten kan ikke specificere kravet til en sikker HTTP i URI (skønt klienten kan kræve sådan via opgraderingsforhandlingen); og
  • Da HTTP er defineret på en hop- basis, kan det være nødvendigt med HTTP-tunneling for at omgå proxyservere.

Brug med WebSocket

WebSocket bruger også denne mekanisme til at oprette en forbindelse med en HTTP-server på en kompatibel måde. WebSocket-protokollen består af to dele: et håndtryk for at etablere den opgraderede forbindelse og derefter den aktuelle dataoverførsel. Først en klient anmoder om en WebSocket forbindelse ved hjælp af Upgrade: WebSocket og Connection: Upgrade overskrifter, sammen med et par protokol-specifikke overskrifter for at etablere den version bliver brugt og etablere et håndtryk. Hvis den understøtter protokollen, svarer serveren med det samme Upgrade: WebSocket og Connection: Upgrade overskrifter og fuldfører håndtrykket. Når håndtrykket er gennemført, begynder dataoverførslen.

Brug med HTTP / 2

HTTP-opgraderingsmekanismen bruges til at etablere HTTP / 2 startende fra almindelig HTTP. Klienten starter en HTTP / 1.1-forbindelse og sender en Upgrade: h2c header. Hvis serveren understøtter HTTP / 2, svarer den med HTTP 101 Switching Protocol- statuskode. HTTP-opgraderingsmekanismen bruges kun til klar tekst HTTP2 (h2c). I tilfælde af HTTP2 over TLS (h2) bruges ALPN TLS-protokoludvidelsen i stedet.

Se også

Referencer

eksterne links