A HTTP működése

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(Hibakódok hozzáadva)
a (Hibakódok: typo)
61. sor: 61. sor:
 
** 401 Unauthorized
 
** 401 Unauthorized
 
** 402 Payment Required
 
** 402 Payment Required
*** "Reserver for future use"
+
*** "Reserved for future use"
 
** 403 Forbidden
 
** 403 Forbidden
 
** 404 Not Found
 
** 404 Not Found

A lap 2006. szeptember 15., 00:23-kori változata

A HTTP-t remélhetőleg senkinek sem kell bemutatni.

Egy tipikus tranzakció így néz ki:

Kliens:

GET / HTTP/1.0
If-Modified-Since: Thu, 14 Sep 2006 10:30:58 GMT
Host: chardonnay.math.bme.hu
User-Agent: NutScrape/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

Erre a szerver:

HTTP/1.1 200 OK
Date: Thu, 14 Sep 2006 22:46:45 GMT
Server: Apache
Last-Modified: Thu, 14 Sep 2006 22:46:00 GMT
Content-Length: 6730
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html

Azt érdemes megfigyelni, hogy egy IP:port kombináción több virtuális webszerverünk is lehet a Host: headernek köszönhetően.

HTTPS esetén ugyanez nem működik, mert az SSL handshake megelőzi a HTTP-kérést, így a szerver nem tudja, melyik tanúsítványt mutassa; ha viszont nem ahhoz a szervernévhez tartozót mutatja, amelyikről a kliens le akar tölteni valamit, az egyrészt sechole, másrészt sopánkodik is miatta a böngésző.

HTTPS esetén vagy minden hosztot külön IP:portra kell rakni, vagy minden virtuális hosztnak ugyanabba a domainbe kell tartoznia, és *.domain.com-ra érvényes tanúsítvány kell. (Minden kliens elfogadja?)

Hibakódok

Több más internetes protokollhoz hasonlóan a HTTP-nél is háromjegyű hibakódokkal találkozunk, amelyek első jegyéből lehet következtetni a probléma lényegére. Inkább csak felsorolásszinten:

  • 1-essel kezdődő: elvileg van ilyen, pl. egy kapcsolat protokoll-upgrade-je esetén lehetne használni. Látott már ilyet élő ember?
  • 2-essel kezdődő: nincs gond, a művelet sikerült.
    • 200 OK
    • 201 Created
    • 202 Accepted
    • 203 Non-Authoritative Information
    • 204 No Content
    • 205 Reset Content
    • 206 Partial Content
  • 3-assal kezdődő: átirányítás
    • 300 Multiple Choices
    • 301 Moved Permanently
    • 302 Found
    • 303 See Other
      • POST eredménye lehet
    • 304 Not Modified
    • 305 Use Proxy
    • 306 volt, de megszűnt
    • 307 Temporary Redirect
  • 4-essel kezdődő: kliensoldali hiba
    • 400 Bad Request
    • 401 Unauthorized
    • 402 Payment Required
      • "Reserved for future use"
    • 403 Forbidden
    • 404 Not Found
    • 405 Method Not Allowed
    • 406 Not Acceptable
    • 407 Proxy Authentication Required
    • 408 Request Timeout
    • 409 Conflict
    • 410 Gone
    • 411 Length Required
    • 412 Precondition Failed
    • 413 Request Entity Too Large
    • 414 Request-URI Too Long
    • 415 Unsupported Media Type
    • 416 Requested Range Not Satisfiable
    • 417 Expectation Failed
  • 5-össel kezdődő: szerveroldali hiba
    • 500 Internal Server Error
    • 501 Not Implemented
    • 502 Bad Gateway
    • 503 Service Unavailable
    • 504 Gateway Timeout
    • 505 HTTP Version Not Supported
Személyes eszközök