www.romver.ru
/ Полный список статей / Создание WEB-сервера

Как заказать сайт


АБРАКАДАБРА (Тоже самое но в читаемом виде)

Jen6ini kak veb-server:
400 Bad Request - svidanie bez buketa
401 Unauthorized - zamujem
402 Payment Required - ujin pri sve4ax
403 Forbidden - ruki pro4'!
404 Not Found - segodna a gulau s podrugami
405 Method Not Allowed - Ne-e, ne s zadi...
406 Method Not Acceptable - ...tol'ko ne sosat'!
407 Proxy Auth. Required - nado sprosit' mamu
408 Request Timeout - znae6' kol'ko ti uje ne zvonil?
409 Conflict - 4to eto tam bila, za blondinka v4era?
410 Document Removed - xo4u razvoda
411 Lenght Required - 4to? eto ti nazivae6' dlinnim?
412 Precondition Failed - 4to? u teba net prezervativa?
413 Request Entity Too Large - Takoy ne vlezit!
415 Unsupported Media Type - nee, v4etverom ne interestno.
500 Internal Server Error - mesa4nie
501 Not Implemented - e6ё nikogda ne probovala
502 Bad Gateway - ...fu, solёno!
503 Service Unavailable - golova bolit
504 Gateway Timeout - eto uje vsё?

V poslednee vrema vozmojnost' upravlenia prilojeniem pri pomo6i WEB interfeysa stanovitsa vse bolee popularnoy. Li4no a primenil vozmojnost' udalennogo upravlenia v rade svoix programm, i eto su6estvenno uprostilo ix soprovojdenie v usloviax bol'6oy organizacii. Delphi soderjit dostato4no mo6nie komponenti, pozvolau6ie legko organizovivat' soedinenia po protokolu TCP/IP. Eto komponenti TServerSocket i TClientSocket. Dla organizacii WEB servera nam potrebuetsa tol'ko TServerSocket. Dla dostupa k na6emu serveru primenim port s nomerom 5000 (napominau, 4to porti s nomerami men'6e 1024 mogut ispol'zovat'sa tol'ko po nazna4eniu i est' opasnost', 4to na Va6ey ma6ine budet ustanovleno nekotoroe prilojenie, ispol'zuu6ee standartniy port HTTP 80). Pri etom URL budet vigladet' kak machine:5000/path pri dostupe iz seti ili 127.0.0.1:5000/path pri dostupe s lokal'nogo xosta. Sleduet srazu pogovorit' o dvux tonkostax, ne imeu6ix pramogo otno6enia k napisaniu WEB servera

  • Dva prilojenia na odnom komp'utere ne mogut odnovremenno ispol'zovat' odin i tot-je port. Poetomu sleduet vinosit' nomer porta v nastroyki programmi i (ili) predusmatrivat' mexanizm avtomati4eskogo vibora odnogo iz al'ternativnix portov na slu4ay, esli osnovnoy uje zanat.
  • Sledstviem iz nesobludenia punkta 1 avlaetsa nevozmojnost' zapuska dvux kopiy odnoy programmi bez prinatia sootvetstvuu6ix mer
  • Programma mojet bit' zapu6ena na komp'utere, ne nastroennom na rabotu s set'u. Popitka ispol'zovania komponenta TServerSocket v etom slu4ae privedet k o6ibkam, kotorie mogut pome6at' normal'nomu zapusku programmi.

Re6eniem vsex etix problem mojet poslujit' sleduu6iy sovet: nikogda ne stav'te svoystvo Active:= true; vo vrema dizayna !! Aktiviruyte komponent TServerSocket pri starte programmi v konstrukcii try ... except; Itak, mi pogovorili ob ob6ix voprosax. Teper' sleduet pogovorit' o protokole HTTP.

Protokol HTTP - kratkaa spravo4naa informacia. Obmen po protokolu HTTP proizvoditsa v t.n. tranzakciax, kotorie sostoat iz trex 6agov

  1. Ustanovka soedinenia. Proizvoditsa po iniciative klienta i dla etogo neobxodimo znat' port, po kotoromu rabotaet server.
  2. Zapros klienta. Klient peredaet serveru HTTP zapros (soderja6iy HTTP metod, identifikator resursa i versiu protokola) + dopolnitel'nuu informaciu. Primer tipovogo zaprosa "GET /book/index.htm HTTP/1.0". Zapros kak pravilo zaver6aetsa pustoy strokoy i obazatel'nim CRLF. Vot polniy primer zaprosa IE5 (perexva4enniy kstati pri pomo6i primera 2):

GET /btn7.gif HTTP/1.1
Accept: */*
Referer: http://127.0.0.1:5000/
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Host: 127.0.0.1:5000
Connection: Keep-Alive

  1. Otvet servera. Server v otvet vidaet HTTP otvet + dopolnitel'nie dannie + zapro6ennuu infomaciu (esli trebuetsa). Otvet servera vsegda sostoit iz stroki s versiey protokola HTTP, probela, trexzna4nogo koda statusa, za kotorim 4erez probel mojet sledovat' ego ras6ifrovka. Posle etogo peredaetsa CRLF (simvolov s kodami 0Dh, 0Ah), zatem idet neobazatel'naa informacionnaa 4ast' v formate parametr=zna4enie i nakonec zaver6aetsa otvet e6e odnoy paroy simvolov CRLF. Zatem sleduet zapro6ennaa informacia (esli ee pereda4a vozmojna i trebuetsa v dannom kontekste). Primer otveta - "NTTR/1.0 200 OK". 4. Server razrivaet soedinenie s klientom, 4to slujit signalom k zaver6eniu obmena Klient toje mojet prervat' obmen na luboy stadii, razorvav soedinenie s serverom. Osobenno eto lubit delat' IE. On vidaet zapros, polu4aet otvet i na4inaet polu4at' dannie, a tem vremenem analizirua polu4enniy otvet viasnaet, 4to zapro6enniy resurs uje est' v ke6e i ego ne trebuetsa zagrujat'. Pri etom IE razrivaet soedinenie i prerivaet zagruzku. Analogi4no on vedet seba pri najatii knopki "Stop". Poetomu pri na4al'nom testirovanii a bi rekomendoval ispol'zovat' programmu Net Vampire, kotoraa otobrajaet podrobniy protokol obmena s serverom (4to i kogda peredano na server i 4to prinato v otvet).

Klassi kodov otveta HTTP. Kak govorilos' ranee, kod otveta predstavlaet soboy trexzna4noe 4islo. Kodi sgruppirovani v pat' kategoriy, kategoria opredelaetsa pervoy cifroy

  • 1** Informacionnaa. Na danniy moment zarezervirovana
  • 2** Uspe6no. Soob6aet ob uspe6nom vipolnenii zaprosa
  • 3** Perenapravlenie. Ukazivaet klientu, 4to dla vipolnenia zaprosa neobxodimi dopolnitel'nie deystvia
  • 4** O6ibka klienta. Soob6aet klientu o tom, 4to zapros nepolniy ili soderjit sintaksi4eskie o6ibki. Krome togo, o6ibki etoy kategorii voznikaut, esli zapro6enniy resurs ne nayden ili nedostupen
  • 5** O6ibka servera. Voznikaet, esli server peregrujen, nedostupen ili v rabote servera voznikli kakie libo o6ibki

Naibol'6iy interes predstavlaut soboy sleduu6ie kodi (oni naibolee rasprostraneni). kodi WEB-servera

  • 200 OK
  • 201 Uspe6naa komanda POST
  • 202 Zapros prinat
  • 203 Zapros GET libo HEAD vipolnen
  • 204 Zapros vipolnen, no net soderjimogo
  • 300 Resurs obnarujen v neskol'kix mestax
  • 301 Resurs udalen navsegda
  • 302 Resurs vremenno udalen
  • 304 Resurs izmenen
  • 400 Ploxoy zapros ot klienta
  • 401 Neavtorizovanniy zapros
  • 402 Neobxodima oplata za zapros
  • 403 Dostup k resursu zapre6en
  • 404 Resurs ne nayden
  • 405 Metod neprimenim dla dannogo resursa
  • 406 Nedopustimiy tip resursa
  • 410 Resurs nedostupen
  • 500 Vnutrennaa o6ibka servera
  • 501 Metod ne vipolnen
  • 502 Peregruzka servera ili neispravniy 6luz
  • 503 Server nedostupen ili taymaut 6luza

Metodi protokola HTTP

Dannaa stat'a ne presleduet cel' opisat' podrobnost' protokola HTTP, no dla ponimania principov raboti primera rassmotrim neskol'ko osnovnix metodov:

Metod GET

Metod GET avlaetsa samim 4asto ispol'zuemim i prednazna4en dla polu4enia informacii ot servera. V ka4estve informacii mojet vistupat' fayl ili rezul'tati raboti kakogo libo processa, naprimer CGI. Metod GET mojet dopolnat'sa usloviem pri pomo6i parametra If-Modified-Since v zaprose - v tom slu4ae rezul'tat peredaetsa tol'ko esli resurs imeet datu modifikacii, bol'6uu ukazannoy v If-Modified-Since. Krome zaprosa metod GET mojet primenat'sa dla pereda4e nebol'6ix ob&emov dannix v vide parametrov.

Metod HEAD

Metod HEAD polnost'u analogi4en metodu GET, no v otvet server peredaet tol'ko zagolovok (no ne peredaet dannie).

Metod POST

Metod POST primenaetsa dla pereda4i serveru dannix

Metod PUT

Metod PUT prednazna4en dla soxranenia dannix, peredannix posle zagolovka zaprosa, pod imenem, ukazannim v zaprose.

Metod DELETE

Metod DELETE ispol'zuetsa dla udalenia resursov s ukazannim v zaprose imenem

Itak, mi pogovorili o teorii (pri4em eto ne teoria, a kratkiy likbez). Nayti bolee podrobnoe opisanie dostato4no legko, est' massa saytov, specializiruu6ixsa na podobnoy dokumentacii. Odnako lu46e vsego po4itat' standarti RFC (v 4astnosti, dokument RFC2068)

A ne xo4u privodit' zdes' sami isxodnie teksti - strani4ka polu4itsa o4en' bol'6oy, poetomu ostal'naa 4ast' stal'i v vide dvux xoro6o prodokumentirovannix proekta lejit v arxivax:

Primer 1.

Prostey6iy Web server - baza dla upravlenia programmoy 4erez WEB. V primere nomer 1 mi rassmotrim sozdanie prostey6iy WEB server. V otvet na luboy zapros on vidaet odnu i tuje strani4ku s informaciey o kliente i formoy, demonstriruu6ey pereda4u zaprosov serveru po metodu GET. Danniy primer mojet slujit' prototipom dla sistem udalennogo upravlenia/administrirovania s WEB interfeysom.

Primer 2.

Obi4niy Web server - baza dla razrabotki svoix serverov. V etom primere rassmotren polnofunkcional'niy server. U nego opredelaetsa direktoriy, v kotorom budut xranit'sa fayli i on mojet vozvra6at' ix po zaprosam klientskoy programmi. A radi eksperimenta razmestil na nem svoy sayt po Delphi (s kotorogo Vi sey4as 4itaete etu stat'u), i on prekrasno otkrilsa pri pomo6i IE. Edinstvenniy ogrex - periodi4eski viletala o6ibka socket error 10054, svazannaa s tem, 4to IE bral strani4ki iz ke6a i rval soedinenie v processe ix pereda4i.

3
Создание эксклюзивных сайтов, юзибилити анализ и бесплатный анализ под запросы основных поисковых машин
Контактная информация :
тел. +7(98I) 7608865

Написать письмо на e-mail
icq 415547094  romverрейтинг на mail.ru сайта romverinbox.ru
© 1997 - 2024 romver.ru

Полная карта сайта Display Pagerank