1 / 36

HTTP

HTTP. HyperText Transfer Protocol. Pl ā ns. Internet & Web Arhitektūra HTTP protokols Web roboti. Internet & Web. The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP)

berny
Download Presentation

HTTP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HTTP HyperText Transfer Protocol

  2. Plāns • Internet & Web • Arhitektūra • HTTP protokols • Web roboti

  3. Internet & Web • The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP) • The World Wide Web (commonly shortened to the Web) is a system of interlinked, hypertext documents accessed via the Internet • Web application is an application that is accessed via web over a network such as the Internet or an intranet

  4. Arhitektūra • Dalīta klienta servera arhitektūra • Saziņa notiek pa datortīklu • Datortīklu arhitektūras abstraktais apraksts – TCP/IP modelis (Internet reference model)

  5. TCP/IP modelis IP = Internet Protocol TCP = Transmission Control Protocol

  6. Lietojumprogrammu līmenis • Piedāvā lietotājam noderīgo protokolu kopumu • Klienta servera sistēmu piemēri un to lietojumprogrammu līmeņa protokoli: • The WorldWide Web (HTTP) • E-mail (SMTP & POP) • Reliable file transfer (FTP) • Internet Domain Name System (DNS)

  7. Web klienti un Web serveri • Web klientu parasti sauc par user agent un tipiskais piemērs ir pārlūkprogramma (browser) • Internet Explorer, Firefox, Opera, Netscape • Web serveris ir programma, kas ir atbildīga par klientu pieprasījumu saņemšanu un atbildes aizsūtīšanu atpakaļ • Apache, Microsoft Internet Information Server • HTTP irpieprasījuma/atbildes (request/response)protokols starp klientiem un serveriem

  8. Web lapas • Parasti klienti pieprasa no serveriem web lapas • Par web lapu sauc World Wide Web informācijas resursu, kuram var piekļūt ar pārlūkprogrammas palīdzību • Šī informācija parasti ir HTML vai XHTML formātā • Katrai web lapai ir URL adrese • No vienas web lapas var aiziet uz citām lapām izmantojot hiperteksta saites • Web lapa sastāv no “objektiem” • teksts, bildes, audio, video

  9. Optional server port (default = port 80) Server domain name Object path name URL - Universal Resource Locators www.someSchool.edu:8080/someDept/pic.gif • URL sastāvdaļas: • servera adrese • (neobligāts) porta numurs • ceļš līdz resursam

  10. Klienta/servera saziņas scenārijs Web klientu/serveru sazināšanas notiek pa HTTP protokolu • Lietotājs norāda web lapas URLu pārlūkprogrammā • Pārlūkprogramma sūta HTTP pieprasījumu serverim • Serveris apstrādā pieprasījumu un sūta pieprasītu web lapu atpakaļ klientam • Pārlūkprogramma rāda web lapas saturu lietotājam

  11. HTTP pārskats • HTTP ir standarts sazināšanas protokols World Wide Web informācijas pārsūtīšanai • HTTP apraksta ziņojumus (request/response) ar kuriem var apmainīties klienti un serveri • Protoklu izstrādāja W3C (World Wide Web Consortium) un IETF (Internet Engineering Task Force) • HTTP versijas: • HTTP 1.0 (1996) - RFC 1945 • Šodienas versija HTTP 1.1 (1999) – RFC 2068

  12. Savienojumi • Parasti HTTP klients inicializē pieprasījumu izveidojot TCP savienojumu pie servera uz 80 porta (kaut gan formāli tas nav obligāti) • HTTP serveris “klausās” šo portu un gaida pieprasījumus no klientiem • HTTP ir “stateless” • serveris neglabā informāciju par iepriekšējiem pieprasījumiem • HTTP 1.0 – viens request/response cikls un savienojums tiek pārtraukts • HTTP 1.1 – pastāvīgu savienojumu atbalsts

  13. HTTP piemērs • Lietotājs ievada URL, piemērām, http://www.someSchool.edu/someDept/index.html • Pieprasītais objekts satur HTML tekstuun atsauces uz vēl 10 JPEG bildēm • Pārlūkprogramma aizsūta HTML “GET” pieprasījumu serverim www.someSchool.edu • Serveris atrod un aizsūta atpakaļ HTML failu • Pārlūkprogramma lasa failu un pēc kārtas sūta vēl 10 pieprasījumus priekš iekļautām JPEG bildēm

  14. HTTP ziņojumu formāts • Ir divi HTTP ziņojumu tipi: • pieprasījums (request) • atbilde (response) • Ziņojumi ir ASCII formātā • human-readable format • HTTP pieprasījuma ziņojums sastāv no: • Pieprasījuma rinda (request line) • Hederu rindas (header lines) • Tukša rinda • (neobligāts) Ziņojuma ķermenis (message body)

  15. HTTP pieprasījuma piemērs • Pirmkārt, jāizveido savienojumu ar serveri telnet www.ietf.org 80 • Tad var sūtīt HTTP pieprasījumu GET /rfc.html HTTP/1.1 Host: www.ietf.org <tukša rinda> request line header

  16. HTTP atbildes formāts HTTP atbildes ziņojums sastāv no: • Atbildes statusa rinda (response status line) • Hederu rindas (header lines) • Tukša rinda • Pieprasītais objekts, kļūdas paziņojums utml HTTP/1.1 200 OK Date: Wed, 26 Sep 2007 16:26:27 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Tue, 29 Aug 2006 15:18:10 GMT ETag: "7c90db-cf8-8ce69080" Accept-Ranges: bytes Content-Length: 3320 Connection: close Content-Type: text/html; charset=UTF-8 <HTML> . . .

  17. Pilns telnet piemērs > telnet www.cs.unc.edu 80 Trying 152.2.131.240... Connected to rock.cs.unc.edu. Escape character is '^]'. GET /~jeffay/foo.txt HTTP/1.1 HTTP/1.1 200 OK Date: Mon, 11 Feb 2002 18:25:31 GMT Server: Apache/1.3.23 (Unix) Last-Modified: Mon, 11 Feb 2002 18:25:02 GMT ETag: "190693ce-b1-3c680c7e" Accept-Ranges: bytes Content-Length: 177 Connection: close Content-Type: text/plain ** This test file is stored in the UNIX ** file system at ** /afs/cs.unc.edu/home/jeffay/public_html/foo.txt Connection closed by foreign host. Pieslēgšanas HTTP servera portam Telnet output GET komanda HTTP atbildes statusa rinda HTTP atbildes hederi Objekta saturs Telnet output

  18. HTTP pieprasījuma metodes • HTTP definē astoņas metodes, kas apzīmē darbības kuru var veikt ar noradītu resursu • GET • POST • HEAD • PUT • DELETE • TRACE • OPTIONS • CONNECT HTTP request line: <METHOD> <PATH> <VERSION> GET /index.html HTTP/1.1 POST /login.jsp HTTP/1.1

  19. GET metode • GET metode tiek izmantota lai vienkārši saņemt informāciju no servera noradot resursa URL • GET ir pati izplatītāka metode • GET metode tiek izmantota arī lai aizsūtīt serverim informāciju no nelielas formas GET /index.html HTTP/1.1 Host: www.someHost.com <FORM NAME="myform" ACTION="cgi-bin/validate.cgi" METHOD="GET"> First Name: <INPUT TYPE="TEXT" NAME="fname" SIZE="20"><BR> Last Name: <INPUT TYPE="TEXT" NAME="lname" SIZE="20"> <BR> <INPUT TYPE="SUBMIT" VALUE="SUBMIT"> </FORM> www.sitename/cgi-bin/validate.cgi?fname=John&lname=Doe

  20. POST metode • Iespēja aizsūtīt datus apstrādei uz servera • Piemēri - liela forma, lietotāja paroļu nosūtīšana, failu augšupielāde • Datus norāda ziņojuma ķermenī • Metodes izpildes rezultātā var tikt izveidots jauns resurss, vai arī izmainīts jau eksistējošs resurss utml POST /login.jsp HTTP/1.1 Host: www.mysite.com User-Agent: Mozilla/4.0 Content-Length: 27 Content-Type: application/x-www-form-urlencoded userid=joe&password=guessme

  21. GET un POST atšķirības • Tehniski atšķirība starp GET un POST ir datu kodēšanas formā • GET – dati tiek iekodēti URLā • POST – dati paradās ziņojuma ķermenī • Galvenā atšķirība – GET ir droša (safe) operācija, kas nemaina servera stāvokļi (no side effects), bet POST ir nedroša • GET ir jāizmanto vienīgi datu iegūšanai, pieprasījumiem • Idempotence – daudzkārtējiem pieprasījumiem tāds pats efekts kā vienam pieprasījumam • GET metodei ir jābūt idempotentai

  22. Citas metodes

  23. HTTP pieprasījuma hederi

  24. MIME tipi • MIME = Multipurpose Internet Mail Extension • Failu formāta identifikators, oriģināli bija definēts e-pastam “Accept” hederis pieprasījumā, “Content-Type” hederis atbildē "x-" prefikss apakštipam norāda, ka šis faila tips nav oficiāli reģistrēts

  25. HTTP atbildes statusa kodi • HTTP atbildes pirmā rinda satur protokola versiju, statusa koda ciparu un paskaidrojošo teksta frāzi HTTP/1.1 200 OK • Klienti var izmantot statusa kodus, lai korekti attēlot informāciju • Statusa koda pirmais cipars norāda uz koda klasi • 1XX – Informational • 2XX – Success • 3XX – Redirection • 4XX – Client Error • 5XX – Server Error

  26. HTTP statusa kodi

  27. Statusa kodu apstrāde

  28. HTTP atbildes hederi

  29. Sesijas stāvokļa uzturēšana • Bieži Web lietojumprogrammās ir nepieciešams uzturēt un kontrolēt lietotāja sesijas stāvokli • lietotāja reģistrācija • web lapas uzstādījumi • pirkšanas groza saturs Internet veikalā • HTTP ir “stateless”, tāpēc lietotāja sesijas uzturēšanai ir jālieto speciālas metodes • cookies • slēptie formas mainīgie • URL pārrakstīšana • servera puses sesijas

  30. browser  server browser  server GET /index.html HTTP/1.1 Host: www.w3.org HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value (content of page) browser  server GET /spec.html HTTP/1.1 Host: www.w3.org Cookie: name=value Accept: */* Cookies • Viens no galvenajiem sesijas uzturēšanas līdzekļiem • Cookie ir teksta fails, kuru Web serveris aizsūta klientam, kurš saglabā to uz lokāla diska un nākamajos pieprasījumos sūta nemainītu atpakaļ serverim . . .

  31. Web roboti • Web robots (web crawler, web spider) – programma vai automatizēts skripts, kurš metodiski apstaiga World Wide Web • Tipiskie uzdevumi: • up-to-date informācijas nodrošināšana meklēšanas programmās • apstaigātu lapu saglabāšana turpmākai apstrādāšanai • HTML koda validācija, linku pārbaude utml

  32. Web robotu arhitektūra

  33. Robotu pieklājības politika • Web roboti var ievērojami ietekmēt web lapu darbspēju • vairāki pieprasījumi sekundē • lielo failu augšupielāde • Lai kontrolēt problēmu ir izstrādāts robotu izslēgšanas protokols (robots.txt protokols) • Var apskatīties, piemērām,http://del.icio.us/robots.txt

  34. Apache HTTP Client • Web resursu piekļuvei ar HTTP var izmantot Java SE java.net pakotni • Taču bāzes funkcionalitāte nenodrošina pilnu elastīgumu un funkcionalitāti • Jakarta Commons HttpClient komponents piedāvā efektīvu , modernu un daudz-funkcionālu risinājumu • Paņemt HttpClient no http://jakarta.apache.org/httpcomponents/httpclient-3.x/ • Pielikt commons-httpclient-3.1.jar pie classpath • Izmantot klases no org.apache.commons.httpclient

  35. Izmantošanas piemērs // izveido jauno klienta instanci HttpClient client = new HttpClient(); // izveido GET metodi GetMethod method = new GetMethod(url); // uzliek parametrus method.getParams().setParameter( HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); // izpilda metodi int statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { log.error("Method failed: " + method.getStatusLine()); } // saņem atbildes ķermeni, web lapas saturu byte[] page = method.getResponseBody(); // atbrīvo savienojumu method.releaseConnection();

  36. Resursi • HTTP by W3C http://www.w3.org/Protocols/ • HTTP Session Tracking http://www.unix.org.ua/orelly/java-ent/servlet/ch07_01.htm • Par Web robotiem http://en.wikipedia.org/wiki/Web_crawler • Apache HTTP Client http://jakarta.apache.org/httpcomponents/httpclient-3.x/

More Related