Conexiune Http (conexiuni HTTP), un blog despre crearea site-urilor, promovarea site-urilor, câștigurile în

Subiect 8: Conexiune HTTP (Conexiuni HTTP)

Bună ziua, cititorul blogului ZametkiNaPolyah.ru. Continuăm să ne cunoaștem protocolul HTTP în serverele și protocoalele secțiunii și secțiunea HTTP a protocolului. În această înregistrare, vom vorbi despre conexiunile HTTP și, în esență, modul în care sunt implementate în protocolul HTTP versiunea 1.1. Mai intai, voi spune ca in momentul de fata exista conexiuni HTTP constante, ceea ce inseamna un lucru simplu: pentru o sesiune TCP puteti trimite cateva cereri HTTP si obtineti cat mai multe raspunsuri HTTP, inainte de a fi departe de cazul. De asemenea, în această intrare vom acoperi cerințele pentru transmiterea mesajelor HTTP.

Conexiune Http (conexiuni HTTP), un blog despre crearea site-urilor, promovarea site-urilor, câștigurile în

Conexiune HTTP (conexiuni HTTP)

Conexiuni HTTP permanente (conexiuni persistente HTTP)

Dacă doriți să aflați totul despre protocolul HTTP. consultați navigația sub titlul protocolului HTTP. conexiune HTTP, sau HTTP Conexiuni în acest moment este o constantă pentru fiecare adresa URL (citit despre URI-ul HTTP), o dată la un moment dat pentru fiecare cerere client de a utiliza o conexiune TCP separată (chiar dacă pagina tocmai a actualizat), care a creat o sarcină mare pe masina cu serverele HTTP . deoarece fiecare element de pagină, de exemplu o imagine, este una sau mai multe cereri de la client către server.

Să vedem ce constante HTTP oferă:

  1. Acum, nu este nevoie să ridicați în mod constant o nouă conexiune TCP pentru cerere, astfel încât resursele serverului să fie salvate în mod semnificativ.
  2. Solicitările de clienți HTTP și răspunsurile serverului pot fi reprezentate ca o conductă continuă, paralelă, într-o singură conexiune TCP.
  3. Pentru a instala conexiunea TCP la mașina client și server, trebuie să trimiteți pachete, prin urmare, cel de-al treilea strat al modelului OSI a fost foarte încărcat, așa că a fost până când a fost stabilită conexiunea HTTP.

Prin urmare, în prezent, toți clienții HTTP și serverele HTTP sunt dezvoltați ținând seama de faptul că aceștia lucrează utilizând conexiuni HTTP constante între client și server. În versiunea de HTTP 1.1, orice client implicit crede că trebuie să lucreze cu serverul printr-o conexiune HTTP persistentă. Odată ce clientul și serverul oprit să vorbească, au nevoie să se rupă conexiunea TCP, acesta este un domeniu special în conexiunea antet (dacă nu știți ce antetele și câmpurile, apoi citiți parametrii articol HTTP). După ce clientul a primit un mesaj despre eșecul conexiunii TCP, acesta nu ar trebui (citiți despre cerințele HTTP) să trimită antete la server.

Dat fiind că conexiunea HTTP este permanentă. clientul poate trimite mai multe cereri HTTP într-un rând, nu mă aștept la mesaje HTTP de la server, dar serverul ar trebui să trimită răspunsuri HTTP la mesajele client în ordinea în care a primit cererile. Dat fiind faptul că conexiunea HTTP este în prezent utilizată, serverele au o anumită perioadă de așteptare (numerele specifice depind direct de setările serverului), după care nu mai suportă conexiuni inactive.

Vreau să observ că atunci când conexiunea TCP este închisă, clientul și serverul pot funcționa asincron (deși protocolul HTTP pentru toate definițiile este sincron). De exemplu, avem o conexiune HTTP inactivă. serverul a încheiat timpul de așteptare, și trimite un mesaj la client că el rupe conexiunea TCP, dar în același timp, clientul trimite o anumită cerere HTTP, în acest caz, programul client trebuie să „facă față“, fără intervenție umană, și anume: trimiteți o solicitare pentru a instala o nouă conexiune HTTP și repetați solicitarea anterioară.

În general, esența acestui post este că în momentul de față în HTTP este suportată o conexiune HTTP permanentă prin pipeline cu posibilitatea procesării asincrone a evenimentului de închidere a conexiunii.

Cerințe de transfer de mesaje și alegeri de conectare HTTP (conexiuni HTTP)

Cerințe generale pentru transmiterea mesajelor în standardul HTTP:

  1. În serverele HTTP 1.1, trebuie să mențineți conexiuni HTTP persistente.
  2. În HTTP1, clienții ar trebui să monitorizeze conexiunea pentru erori în timp ce trimit un mesaj. Dacă se detectează o eroare, clientul ar trebui să oprească imediat transmiterea. În cazul în care corpul unui mesaj HTTP este trimis utilizând codarea de bucăți. atunci o piesă de lungime zero poate fi utilizată pentru a indica sfârșitul prematur al mesajului.
  3. Protocolul HTTP versiunea 1.1 prevede că clientul ar trebui să poată lucra cu codul de stare 100.

Serverele HTTP versiunea 1.1 ar trebui să poată lucra cu clienții 1.0 și mai mici, iar serverele nu ar trebui să utilizeze mesajele cu codul de stare 100. Dacă clientul HTTP 1.1 comunica cu serverul 1.0. pentru trimiterea corectă a unei cereri repetate, ar trebui să folosească următorul algoritm:

  1. Inițializați o nouă conexiune la server.
  2. Trimiteți antete de cerere.
  3. Inițializați variabila R cu timpul aproximativ al transferului de informații către server și înapoi (de exemplu, în funcție de timpul de stabilire a conexiunii) sau o valoare constantă de 5 secunde dacă timpul de transmisie nu este disponibil.
  4. Calculați T = R * (2 ** N), unde N este numărul de repetări anterioare ale acestei interogări.
  5. Fie așteptați serverul de răspuns cu un cod de eroare, fie așteptați doar secunde T (oricare dintre acestea survine mai întâi).
  6. Dacă nu este primit un răspuns cu un cod de eroare, după T secunde, trimiteți organismul de solicitare.
  7. În cazul în care clientul detectează că conexiunea HTTP a fost închisă prematur, el a trebuit să repete de la pasul 1 până când solicitarea este acceptată, sau până când primește un răspuns de eroare, sau până când utilizatorul nu se încheie răbdare și el nu a finaliza procesul de repetiție.

Acestea sunt cerințele pentru trimiterea mesajelor HTTP la standardul HTTP. Aceasta conchide discuția despre conexiunile HTTP. informații mai complete pe care le puteți învăța de la standardul HTTP 1.1.

Un pic despre cum să creați site-uri web și cum să promovați un site web:

Vă recomandăm să vedeți și să citiți: