HTTP
Download
1 / 36

HTTP - PowerPoint PPT Presentation


  • 187 Views
  • Uploaded on

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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' HTTP' - berny


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
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/IP modelis

    (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




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



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/


ad