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

HTTP PowerPoint PPT Presentation


  • 109 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

HTTP

HyperText Transfer Protocol


Pl ns

Plāns

  • Internet & Web

  • Arhitektūra

  • HTTP protokols

  • Web roboti


Internet web

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


A rhitekt ra

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

TCP/IP modelis

IP = Internet Protocol

TCP = Transmission Control Protocol


Lietojumprogrammu l menis

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 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

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


Url universal resource locators

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

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 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

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

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

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

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 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

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 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

  • 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

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

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

Citas metodes


Http piepras juma hederi

HTTP pieprasījuma hederi


Mime tipi

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 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

HTTP statusa kodi


Statusa kodu apstr de

Statusa kodu apstrāde


Http atbildes hederi

HTTP atbildes hederi


Sesijas st vok a uztur ana

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


Cookies

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 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

Web robotu arhitektūra


Robotu piekl j bas politika

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

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

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

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