HTTP
Sponsored Links
This presentation is the property of its rightful owner.
1 / 36

HTTP PowerPoint PPT Presentation


  • 136 Views
  • Uploaded on
  • Presentation posted in: General

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)

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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)

  • 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


Arhitektūra

  • Dalīta klienta servera arhitektūra

  • Saziņa notiek pa

    datortīklu

  • Datortīklu arhitektūras

    abstraktais apraksts –

    TCP/IPmodelis

    (Internet reference model)


TCP/IP modelis

IP = Internet Protocol

TCP = Transmission Control Protocol


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)


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


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


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


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


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


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


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


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)


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


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>

. . .


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


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


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


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


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


Citas metodes


HTTP pieprasījuma hederi


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


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


HTTP statusa kodi


Statusa kodu apstrāde


HTTP atbildes hederi


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


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

. . .


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


Web robotu arhitektūra


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


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


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();


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/


  • Login