A HTTP működése
a (linkmozgatás) |
(subject alternative name) |
||
34. sor: | 34. sor: | ||
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? Állítólag az IE és az OE nem.) |
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? Állítólag az IE és az OE nem.) |
||
− | Egy az SNI-ről szóló [http://weblogs.mozillazine.org/gerv/archives/2007/08/virtual_hosting_ssl_and_sni.html cikkben] azt boncolgatják, hogy ez a "Server Name Indication" nevű megoldás, amit egyébként az [http://www.rfc-archive.org/getrfc.php?rfc=3546 RFC3546] ír le, a jövőben megkönnyíti majd a https-es virtualhosztingot; egyelőre azonban pl. Windows XP-re nem érhető el olyan IE-változat, ami támogatná, úgyhogy széles körben nem lehet használni. A Firefox2 állítólag tudja. |
+ | Egy az SNI-ről szóló [http://weblogs.mozillazine.org/gerv/archives/2007/08/virtual_hosting_ssl_and_sni.html cikkben] azt boncolgatják, hogy ez a "Server Name Indication" nevű megoldás, amit egyébként az [http://www.rfc-archive.org/getrfc.php?rfc=3546 RFC3546] ír le, a jövőben megkönnyíti majd a https-es virtualhosztingot; egyelőre (2007-ben) azonban pl. Windows XP-re nem érhető el olyan IE-változat, ami támogatná, úgyhogy széles körben nem lehet használni. A Firefox2 állítólag tudja. |
+ | |||
+ | Szintén megoldás lehet, ha olyan tanúsítványt készítünk, amelyben a Subject Alternative Name mezőben felsoroljuk az összes olyan hosztnevet, amire érvényesnek kell lennie; viszont ehhez a tanúsítvány igénylésekor már tudnunk kell, melyek ezek a hosztok, és találnunk kell olyan CA-t, amelyik hajlandó aláírni ezt az öszvértanúsítványt (ez valószínűleg nem annyira nehéz, ha mindegyik hosztnév ugyanabba a domainbe esik). |
||
== Hibakódok == |
== Hibakódok == |
A lap 2012. szeptember 21., 08:47-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? Állítólag az IE és az OE nem.)
Egy az SNI-ről szóló cikkben azt boncolgatják, hogy ez a "Server Name Indication" nevű megoldás, amit egyébként az RFC3546 ír le, a jövőben megkönnyíti majd a https-es virtualhosztingot; egyelőre (2007-ben) azonban pl. Windows XP-re nem érhető el olyan IE-változat, ami támogatná, úgyhogy széles körben nem lehet használni. A Firefox2 állítólag tudja.
Szintén megoldás lehet, ha olyan tanúsítványt készítünk, amelyben a Subject Alternative Name mezőben felsoroljuk az összes olyan hosztnevet, amire érvényesnek kell lennie; viszont ehhez a tanúsítvány igénylésekor már tudnunk kell, melyek ezek a hosztok, és találnunk kell olyan CA-t, amelyik hajlandó aláírni ezt az öszvértanúsítványt (ez valószínűleg nem annyira nehéz, ha mindegyik hosztnév ugyanabba a domainbe esik).
1 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
2 Potenciális zh-kérdések
- Milyen problémával kell számolnunk, ha http virtualhostingot használunk, és SSL-re is szükségünk van? Milyen megoldásai vannak a problémának?
- Írja le egy tipikus HTTP-tranzakció során kicserélt alkalmazási rétegbeli üzeneteket! (Az üzenetek felépítése fontosabb, mint a konkrét tartalmuk.) Hogyan csoportosíthatók a szerver által küldött numerikus kódok?