hypertext transfer protocol og world wide web dag diesen … · 2015. 2. 13. · hypertext transfer...

38
Hypertext Transfer Protocol og World Wide Web Dag Diesen Institutt for informatikk Universitetet i Oslo

Upload: others

Post on 18-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Hypertext Transfer Protocol

og

World Wide Web

Dag Diesen

Institutt for informatikk

Universitetet i Oslo

Page 2: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Bakgrunn

April 1995 #2 of 38

BakgrunnWorld Wide Web (WWW) med overføring avhypertekst dokumenter over Internettet haroppnådd bred popularitet. I tillegg til å brukeWWW klienter, har mange lært seg HypertextMarkup Languge og dermed kunnet leggeopp informasjon tilgjengelig for hele verden(eller i allefall hele Internettet). MenHypertext Transfer Protocol (HTTP) for åoverføre dokumentene fra en HTTP tjener tilen WWW klient er ikke like kjent.

På dette seminaret vil jeg gjemmomgåHypertext Transfer Protocol som brukes for åoverføre dokumenter mellom en HTTP tjenerog en WWW klient.

Page 3: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Innhold

April 1995 #3 of 38

InnholdSeminaret vil bli bygd opp slik:

� Rammeverket for World Wide Web vil blipresentert, og HTTP protokollen sin plassvil bli forklart.

� HTTP protokollen og framtidige utvidelsertil denne blir tatt opp.

� HTTP/1.0 vil bli gjennongått i stor detalj.

� Herunder vil følgende punkter bli tatt opp:

— Meldingstyper— Forespørsel— Svar— HTTP Metoder— Status— Ledelinjer— Data objekter— Bli enig algoritme

Page 4: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Kommunikasjon mellom klient og tjener

April 1995 #4 of 38

KommunikasjonIdeen med World Wide Web er å lage etrammeverk for bruk av forskjellige tjenesterover internettet. En klient må derfor være istand til å forstå flere protokoller (FTP,NNNTP for news, Gopher, Z39.50 for å søke iWAIS og HTTP).

Typisk mønster for kommunikasjon mellomen WEB-klient og en tjener vil være at WEBklienten sender en forespørsel om etdokument, og tjeneren sender tilbakedokumentet til klienten (hvis alt er OK).

Eksempelvis vil spøsrsmål etter et hypertekstdokument som har et bilde inkludert gifølgende kommunikasjon mellom WEB klientog HTTP tjener:

Klient Send selve hypertekst dokumentet.

Tjener Her er dokumentet.

Klient Send bildet som er inkludert idokumentet.

Tjener Her er bildet.

Page 5: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

URL som identifikasjon

April 1995 #5 of 38

URLFor å kunne finne et objekt (eller dokument),må adressen til objektet kunne identifiseresentydig. Syntaks og semantikk for detteadresserommet er definert som UniformResource Locator (URL) y.

En adresse angies ofte med følgendekompononenter:

� Protokoll navn.

� Internet domain name eller IP adresse.

� Port nummer (kan sløyfes hvis standardport nummer brukes).

� Vei (navnet til objektet hos tjeneren).

Følgende protokoll navn er definert:

ftp, http, gopher, wais (Z39.50), news(lokal news tjener), nntp og mailto.

Eksempler:

http://www.ifi.uio.no/les-meg.htmlftp://ifi.uio.no/pub/cim/READMEmailto:[email protected]:ifi.tavle

y RFC 1738, Proposed Standard Protocol, Status: Elective

Page 6: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Identifikasjon av dataobjektet −−−

April 1995 #6 of 38

URIEt generelt forslag til standard for å angi etmere generelt adresserom enn URL er kjentsom URI (Internet-Draft).

URL standarden og en mere generelleidentifikator kalt URN skal værespesialisering av URI standarden. URN erment å identifisere et dokument som det kanfinnes kopier av på ulike plasser (tilsvarendeISBN for bøker). Men siden det ikke finnesnoe publisert utkast til URN standard har vi idag bare URL standarden og holde oss til.

Page 7: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Forslag til WWW standarder

April 1995 #7 of 38

Forslag til WWW standarderFølgende forslag til standarder er lagetspesielt for World Wide Web:

Hypertext Transfer Protocol (HTTP)Protokoll for kommunikasjon mellom enWWW klient og en HTTP tjener(Internet-draft).

Hypertext Markup Language (HTML)Språket som brukes for å skrive ethypertekst dokument (Internet-draft).

Virtual Reality Modelling Language (VRML)Språk for å modellere interaktiv simuleringmed mange deltagere av “kunstig” verden iett nettverk (privat forslag).

Universal Resource Locator (URL)Definisjon av adresser for å lokaliseredokumenter (Proposed Standard ProtocolRFC: 1738).

Common Gatway Inteface (CGI) Forkommunikasjon mellom en HTTP tjenerog et eksternt program (privat forslag).

Common Client Interface (CCI) Forkommunikasjon mellom WWW klient og eteksternt program (privat forslag).

Page 8: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

HTTP tjener

April 1995 #8 of 38

HTTP tjenerEn HTTP tjener tar i mot kommandoer fra enWWW klient, utfører disse kommandoene oggir svar tilbake til klienten.

Mange HTTP-tjener program er i stand til åsende forespørsler videre til andre programlokalt. Disse programmene leverer et svardirekte til HTTP tjeneren som så sender detvidere til klienten. Denne mekanismen erkjent som HTTP tjener “Gatway” til andreprogram.

De fleste HTTP tjenere forstår kun HTTPprotokollen, men det er minst et eksempel påen kombinert HTTP/Gopher tjener-program.

De to mest kjente HTTP tjener programmerog viktigste egenskapen som skiller mellomprogrammene:

Cern httpd 3.0 Kan brukes til å formidlespørsmål og svar mellom Internettet oginstallasjoner beskyttet av en brannvegg(“firewall”).

NCSA httpd 1.3 Gir mulighet for “Server SideIncludes”.

Page 9: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Forslag til HTTP−protokollen

April 1995 #9 of 38

Forslag til HTTP-protokollenHer gir jeg en kort skisse av utviklingen avHTTP protokollen:

HTTP/0.9 Den første versjon av HTTPprotokollen. Forespørselen er en GETkommando. Svaret er et data objekt.

HTTP/1.0 Basic Et tidlig forslag til HTTP/1.0protokoll. Den inneholder noenmetoder/kommandoer som seinere erutelatt.

HTTP/1.0 March 8, 1995 Siste Internet Drafttil HTTP/1.0 protokollen.

Det er forslag til protokoll av 8. mars 1995som omtales som HTTP/1.0 protokollen idette seminaret.

HTTP/1.0 protokollen er en ren tekstligprotokoll. Den er basert på at en klient senderen forespørsel, som så besvares av en tjener.

Med hensyn på lagdelingen i OSI modellenligger den på applikasjons nivået.

Page 10: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Utvikling av HTTP

April 1995 #10 of 38

Framtidig utvikling av HTTPHer er foreslåtte utvidelser til HTTP/1.0protokollen:

Kryptert passord-kontroll Et tillegg kaltDigest Access Authenticiation er foreslåttfor å gjøre det mulig å sende passordkryptert.

Tredje part’s kontroll Et annet tillegg kaltMediated Digest Authentication skal gi enmulighet for å la en tredje part’s tjenerforeta passord-kontroll på vegne av kundeog tilbyder. Tredje part’s tjener gir da enkunde et passord, og går god for kundenoverfor flere informasjons leverandører.

Generell utvidelse En mekanisme somtillater at tillegg til protokollen kandefineres. Den inneholder også en generellmekanisme for å omsvøpe en forespørseleller et svar. Omsvøpingen vil da tillate f.eks. kryptering av meldinger.

Page 11: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

HTTP Ny Generasjon

April 1995 #11 of 38

HTTP Ny GenerasjonDet er foreslått at det defineres en nyHTTP-NG protokoll. Denne protokollenoppretter (f. eks.) en TCP-forbindelse mellomklient og tjener som kan brukes for å sendemange meldinger begge veier. Denneforbindelsen deles opp i mange sesjoner. Enav disse tar kontroll informasjon, og de andretar dataobjekter. Protokollen koder allemeldinger. Dette i motsetning til HTTP/1.0der meldingene sendes som tekst.

Noe forslag til protokollen er ikke definert y.Men en kravspesifikasjon er satt opp. Noen avdisse krav er som følger:

� Effektiv overføring av data objekter.

� Støtte asynkron overføring.

� Støtte kryptering og betaling forinformasjon.

� Tillate mellom-tjenere.

� Støtte obligatorisk visning (forfatter,opphavsrett, lisens-informasjon).

� Uavhengig av transport lag.

y Et meget uferdig utkast til en del av protokollen er laget.

Page 12: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Mindre kjent funksjonalitet

April 1995 #12 of 38

Mindre kjent funksjonalitetHTTP/1.0 protokollen er en temmelig nyprotokoll som ennå ikke har oppnådd statussom “Proposed Standard Protocol”. Den harderfor noen helt nye muligheter som venterpå å bli tatt i bruk (av klient og tjenerprogrammer):

� Mekanisme for å hente beste dokument,når flere utgaver av samme dokument ertilgjengelige. Det kan være dokumentskrevet i det språk som blir best forstått aven bruker, eller et bilde som kan vises påden maskinen brukeren sitter ved.

� Metoder (eller kommandoer) som tillateren bruker å oppdatere dokumenter lagrethos en tjener, med hjelp av klientprogrammet (PUT, DELETE, LINK,UNLINK). Et eksempel kan være eninformasjonsleverandør som selger plasstil andre. De som kjøper plassen harmulighet for å sende et oppdatertdokument til en HTTP tjener med bruk avPUT metoden.

Page 13: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Meldingstyper

April 1995 #13 of 38

MeldingstyperHTTP/1.0 protokollen definerer dissemeldingstyper:

Full forespørsel Kommando som en WWWklient sender til en HTTP tjener.

Fullt svar Svar på en forespørsel som sendesfra en HTTP tjener til en WWW klient.

I tillegg defineres to meldingstyper sompasser med HTTP/0.9 protokollen:

Enkel forespørsel GET kommando som enklient sender dersom HTTP/0.9protokollen må brukes.

Enkelt svar Data som sendes fra en HTTPserver til en klient når HTTP/0.9protokollen må brukes.

Page 14: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Full forespørsel

April 1995 #14 of 38

Full forespørselEn WWW klient sender forespørsel til enHTTP tjener. Denne forespørseleninneholder følgende deler:

� Forespørsels linje. Den må alltid være med.

� Eventuelt lede linjer.

� CR LF. Disse skilletegnene må alltid væremed.

� Eventuelt et data objekt.

Lede linjene kan være av generell type,forespørsels type eller data objekt type.

Page 15: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

En forespørsel

April 1995 #15 of 38

En forespørselHer er eksemplel på en HTTP forespørsel:

GET /demo/postscript.ps HTTP/1.0Date: Tue, 6 Apr 1995 19:05:03 GMTMessage-Id: <[email protected]>MIME-version: 1.0Accept: application/postscriptAccept-Encoding: compress, gzipUser-Agent: Mosaic/1.5 libwww/2.17

Første linje er en forespørsels linje. De nestetre linjene er ledelinjer av generell type somangir tid meldingen ble laget,meldingsidentifikatoren, ogMIME-protokollen som følges. Deretterkommer tre ledelinjer av forespørsels typensom angir mediatyper som aksepteres,koding som aksepteres og det WWW-klientprogrammet som sender forespørselen.

Siden ikke noe data objekt avsluttermeldingen, må den avsluttes med en blanklinje.

Page 16: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Fullt svar

April 1995 #16 of 38

Fullt svarEn HTTP tjener sender svar til en WWWklient. Dette svaret inneholder følgendedeler:

� Svar linje. Den må alltid være med.

� Eventuelt lede linjer.

� CR LF. Disse skilletegnene må alltid væremed.

� Eventuelt et data objekt.

Lede linjene kan være av generell type, svartype eller data objekt type.

Page 17: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Eksempel på svar

April 1995 #17 of 38

Eksempel på svarHer er svaret på forespørselen (foil 15).Postscript koden i dette eksemplet sletter enfil med navnet demo.tmp når et ikke sikretghostview program startes fra enWWW-klient y.

HTTP/1.0 200 OKDate: Tue, 6 Apr 1995 19:05:15 GMTMessage-Id: <[email protected]>Server: NSCA/1.3 libwww/2.17Content-Length: 25Content-Type: application/postscript

%!(demo.tmp) deletefile

Eksempel starter med en status linje. Den måalltid være med. Deretter kommer toledelinjer av generell type som angir tid ogmeldings-identifikator. Så følger en ledelinjeav svar type som gir beskjed om tjenerprogrammet som brukes. Deretter kommerto ledelinjer av data objekt type som angirlengde og mediatypen til data objektet. Etteren blank linje kommer data objektet.

y Takk til Knut Omang som ga et eksempel på et slikt postscriptprogram

Page 18: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Forespørsels linje

April 1995 #18 of 38

Forespørsels linjeEn forespørsels linje inneholder følgendeelementer:

� Metode eller kommando som HTTPtjeneren skal utføre.

� SP

� URL. Den delen som er igjen når protokollog tjenernavn og eventuell port nummer erfjernet.

� HTTP versjon som meldingen er kodet i.

� CR LF

Eksempler på forespørselslinjer:

GET /ifi/http.ps HTTP/1.0POST /ifi/cgi-bin/motta-form HTTP/1.0

Page 19: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

HTTP metoder

April 1995 #19 of 38

HTTP metoderFølgende kommandoer eller metoder erdefinert i HTTP protokollen:

GET Gi meg data objektet med oppgitt URL(som angitt i forespørsels linja).

HEADER Returner status og ledelinjer foroppgitt URL, men ikke selve data objektet.

POST Ta i mot et data objekt fra klienten ogkobl dette til oppgitt URL.

PUT Ta i mot et data objekt og lagr dette medden oppgitte URL.

DELETE Fjern data objektet med oppgittURL.

LINK Opprett en link fra oppgitt URL til enannen ressurs angitt i en Link headerledelinje.

UNLINK Fjern linken med oppgitt URL.

Utvidelse Andre metoder som ikke er definerti HTTP/1.0.

Page 20: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Bruk av HTTP kommandoer (del 1) −−

April 1995 #20 of 38

Bruk av HTTP kommandoerHer skisseres bruken av de tre vanligekommandoene:

GET En WWW klient spør etter data fra enHTTP tjener. Dataene kan være HTMLdokumenter, GIF-bilder, postscript filer ogalt annet som klienten kan håndtere.Forespørselen kan også være et søk etterdata. Da er søketermene angitt til slutt iURL’en etter et spørsmålstegn.

HEADER En spesiell WWW klient vil brukedenne kommandoen for å sjekke om eneller flere URL’er fortsatt kan brukes. Enslik klient vil da typisk skrive ut beskjed omURL’er som det er noe galt med.

POST Denne kommandoen brukes når enWWW klient vil sende data utfylt i en formtil en HTTP tjener. Slike data vil vanligvissendes videre fra tjeneren til et programsom kan behandle dataene. Merekompliserte søkedata er også naturlig åsende med POST kommandoen.

Page 21: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Bruk av HTTP kommandoer (del 2) −−

April 1995 #21 of 38

Bruk av HTTP kommandoerHer skisseres mulig bruk av kommandoersom foreløpig anvendes sjelden:

PUT Denne kommandoen brukes for å la enWWW klient opprette et permanentdataobjekt hos tjeneren. I de aller flestetillfeller vil tjeneren ønske et gyldigpassord fra WWW klienten før dennekommandoen aksepteres.

DELETE Denne kommandoen lar en klientfjerne et dataobjekt hos en server. Også hervil det være naturlig å kreve et passord.

LINK En klient kan med denne kommandoenopprette en link til f. eks. forrige side, enmail-adresse eller noe annet.

UNLINK En klient kan med denne fjerne enlink.

Utvidelse Her kan andre ikke standardkommandoer defineres. Kommersielletjenerprogram og klienter vil typisk brukedenne muligheten.

Page 22: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Status Linje

April 1995 #22 of 38

Status linjeEn status linje inneholder følgendeelementer:

� HTTP-versjon som svar meldingen erkodet i.

� SP

� Status kode.

� SP

� Tekst som følger statuskoden.

� CR LF

Eksempler på statuslinjer:

HTTP/1.0 200 OKHTTP/1.0 300 Moved PermanentlyHTTP/1.0 401 UnauthorizedHTTP/1.0 501 Not Implemented

Page 23: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Status koder −−

April 1995 #23 of 38

Status koderStatuskodene er delt i 5 grupper, avhengig avførste siffer i koden:

1xx Informasjon Er tenkt brukt til å giinformasjon. Reservert for framtidig bruk.

2xx Suksess Aksjonen er utført, forstått ellerakseptert.

3xx Ny retning Flere aksjoner må til for åfullføre forespørselen.

4xx Klient feil Noe er galt med forespørselenfra klienten.

5xx Tjener feil Tjeneren var ikke i stand til åbehandle en gyldig forespørsel.

Gruppen for ny retning kan gi beskjed om aten ressurs er flyttet, om flere valg, og at enressurs ikke er modifisert.

Gruppen for suksess kan gi beskjed om at etobjekt er laget, at forespørselen er akseptertfor prosessering, at informasjonen erprovisorisk, at intet data objekt er returnert,eller at ganske enkelt at forespørselen erfullført.

Page 24: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Lede linjer

April 1995 #24 of 38

Lede linjerEn ledelinje består av et navnefelt og etverdifelt skilt av et kolon y. Eksempel på enledelinje:

Content-Language: no

Følgende typer av ledelinjer er definert:

Generell type Gir generell informasjon ommeldingen (dato og tid,meldingsidentifikator, MIME-versjon ogom meldingen er videresendt).

Forespørsels type Brukes til å gi informasjonom en forespørsel eller klienten somsender en forespørsel.

Svar type Brukes til å gi informasjon omtjeneren som svarer på en forespørsel.

Data objekt type Gir (meta-)informasjon omdataobjektet som tjeneren returnerer, ellerom den ressursen som det er spurt om.

Ledelinjer av generell type og data objekt typebrukes både i forespørsel og svar melding.

y Mye av syntaksen her er hentet fra MIME: RFC 1521 DraftStandard Protocol

Page 25: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Data objekt

April 1995 #25 of 38

Data objektData objektet kan følge både en forespørselog et svar. POST og PUT kommandoene vil haet dataobjekt med seg i forespørselen fraklienten. En HTTP tjener vil returnere et dataobjekt som et resultat av en GET kommando.

Et dataobjekt kan være mye forskjellig, som:

� Vanlig tekst.

� HTML tekst.

� VRML kode.

� Postscript kode.

� DVI kode.

� Et GIF bilde.

� En MPEG video-sekvens.

� Kode for lyd.

En HTML tekst (eller VRML kode) får kliententil å sende forespørsel om andre data objektersom enten er “inline” bilder eller linker sombrukeren aktiviserer.

Page 26: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Formatet til et dataobjekt −−

April 1995 #26 of 38

Formatet til et dataobjektHva er formatet til et dataobjekt? Ikke annetenn at det skal være en sekvens av 8 bits tegn.

Data-typen av et dataobjekt blir bestemt aven ordnet 3 nivå modell slik:

1. Content-Transfer-Encoding: Hvordandataene blir overført.

2. Content-Encoding: Hvordan (og om)dataene er komprimert.

3. Content-Type: Dataenes mediatype.

Eventuell de-koding og prosessering avmediatype skjer i rekkefølge som angitt (f.eksdekomprimering før proseesering avpostscript-filen).

Lengden av dataobjektet angies vedContent-Length, et eksplisitt merke somangir slutt på data, at tjeneren avslutterforbindelsen ellerContent-Transfer-Encoding (eksperimentellmekanisme for å dele opp dataobjektet ipakker).

Page 27: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Forespørsel type −−

April 1995 #27 of 38

Forespørsel typeFølgende ledelinjer beskriver hvilke typedataobjekt som aksepteres. Dette girgrunnlag for forhandlinger mellom klient ogtjener, der de samme dataene er på forskjelligform.

Accept Gir beskjed om hvilke media type somer akseptable for klienten. Type kan hervære slikt som lyd, bilde eller forskjelligetyper tekst. Preferanse mellom forskjelligemedia-typer kan angis.

Accept-Charset Kan akseptere ikke standardalfabeter.

Accept-Encoding Klienten kan aksepterekodede data.

Accept-Language De naturlige språk (brukarav) klienten foretrekker og rekkefølgen avhvilke språk som foretrekkes mest.

Page 28: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Eksempel ledelinjer −−

April 1995 #28 of 38

Eksempler på forespørselsledelinjerHer er eksempler på ledelinjer av forespørseltype:

Accept: audio/*; q=0.4,audio/x-aiff, mxb=10000

Accept-Charset: unicode-1-1Accept-Encoding: compress, gzipAccept-Language: no, dk, se, en-gbFrom: [email protected]: http://sec-as/private.htmlUser-agent: DD-WWW/0.9Pragma: no-cache

Page 29: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Bli enig (del 1)

April 1995 #29 of 38

Bli enigHTTP/1.0 protokollen gir mulighet forWWW-klient og HTTP-tjener å bli enig omhvilke dokument som WWW-klienten skal få.Klienten kan gi beskjed om:

� Hvilke mediatype som er akseptable, oggraden av aksept.

� Hvilke alfabet som er akseptable.

� Hvilke kodinger som er akseptable (gzip,compress)

� Hvilke språk som foretrekkes.

� Hvor stort dokumentet kan være.

I tillegg kan tjeneren ha sin egen gradering påkvaliteten av dokumentene.

Hvis tjeneren har tilgang til flere utgaver avdet etterspurte dokument, kan den velge denbeste utgaven, utfra de krav og preferanserklienten setter, og den gradering som liggerinne hos tjeneren. Dersom ingen utgaver avdokumentet oppfyller klientens krav sendesen feilmeldingen om dette.

Page 30: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Bli enig (del 2) −−

April 1995 #30 of 38

Bli enigHTTP/1.0 algoritmen gir en nøyaktigalgoritme for hvordan dette valget skalforetaes.

Anta at tjeneren har en eller flere utgaver av etdokument. Da velges det bort uakseptableeller ikke foretrukne utgaver slik:

� Ikke velg de utgaver som er kodet påuforståelig vis, ikke har et akseptabeltalfabet eller mediatype.

� Gi feilmelding dersom ingen utgaver avdokumentet er akseptable. Er det bare enutgave igjen returner denne.

� Velg den eller de utgavene av dokumentetsom er skrevet i det mest foretrukne språk.

Er det flere utgaver igjen gies de resterendeutgaver et kvalitetsmål etter en bestemtdefinert algoritme.

Page 31: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Bli enig (del 3) −−

April 1995 #31 of 38

Bli enigEr det flere utgaver igjen av dokumentetbrukes følgende algoritme for å gi hvertdokument et kvalitetsmål:

hvis maks-antall-byte >= antall-byteellermaks-antall-byte ikke er gitt

såkvalitet :=

tjener-mål * klient-målellers

kvalitet := 0.0

Både klient-mål og tjener-mål er et tallmellom 0:0 og 1:0, antall-byte er størrelsenpå dokumentet, og max-antall-byte ermaksimal størrelse satt av klienten.

Om det fortsatt gjenstår flere utgaver avsamme dokument skal tjeneren lage ethtml-dokument med referanser til deutgavene som gjenstår slik at brukeren fåranledning til å velge mellom de ulike formeneav samme antatte kvalitet.

Page 32: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Generell type −−−

April 1995 #32 of 38

Generell typeFølgende ledelinjer er av generell type:

Date Tid for når meldingen ble laget.

Forwarded Hvem som videreformidletmeldingen.

Message-ID Entydig identifikator formeldingen.

Mime-version Mime protokollen som brukesfor å lage meldinger.

Eksempler:

Date: Tue, 4 Apr 1995 16:21:46 GMTMime-Version: 1.0

Page 33: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Svar type −−−

April 1995 #33 of 38

Svar typeFølgende ledelinjer er av svar type:

Public Gir ei liste over ikke standar metoderstøttet av tjeneren.

Retry-After Gir beskjed om hvor lengetjeneren er utilgjengelig, dersom denreturnerer status kode: 503 ServiceUnavailable. Verdien kan oppgies somabsolutt tidspunkt eller forsinkelse etterforespørselen.

Server Inneholder informasjon om tjenerprogrammet som behandler forespørselen.

WWW-Authenticate Beskjed om hvilkekontroll skjema for passord som skalbrukes av klienten når den får status kode:401 Unauthorized.

Eksempler:

Public: MGET, MHEAD, MYMETHODRetry-After: 240Server: NSCA 1.3 libwww/2.17

Page 34: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Data objekt type (del 1) −−−

April 1995 #34 of 38

Data objekt typeFølgende ledelinjer er av data objekt type ogbeskriver dataobjektet som sendes med ellerressursen det spørres om:

Allow De metodene som er støttet avressursen identifisert med URL’en oppgitt iforespørselen.

Last-Modified Dato og tid for når ressursensist ble endret.

Title Tittel på data-objektet.

Content-Encoding Hvilken kode som erbrukt for dataobjektet.

Content-Language Hvilke naturlig språkbrukes i dataobjektet.

Content-Length Størrelsen på dataobjektet.

Content-Transfer-Encoding Hvilkeoverførings-kode er brukt på dataobjektet.

Content-Type Media typen på dataobjektet.

Page 35: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Data objekt type (del 2) −−−

April 1995 #35 of 38

Data objekt typeFølgende ledelinjer er av data objekt type ogbeskriver dataobjektet som sendes med ellerressursen det spørres om:

Version Versjons-nummeret på dataobjektet.

Deriwed-From Versjons-nummeret som etdataobjekt hadde før det ble forandret.Brukes når en PUT kommando erstatter etdata-objekt med et endret data-objekt.Dette må være med nårversjons-nummeret fulgte med detopprinnelig dataobjektet som klienten nåendrer.

Expires Gir tidspunktet for når et data-objektikke lenger skal oppbevares lokalt(“caches”).

Link Beskriver en link mellom data-objektetog en annen ressurs.

URI Gir en eller flere Universal ResourceIdentifiers y for et data-objekt. Må følgemed et svar med statuskodene: 201:Created, 301: Moved Permantly og 302:Moved Temporarily.

y Det vil være en URL som brukes.

Page 36: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Eksempler ledelinjer −−−

April 1995 #36 of 38

Eksempler på data objektledelinjerHer er eksempler på ledelinjer av data objekttype:

Allow: POSTContent-Encoding: compressContent-Language: no, enContent-Length: 132560Content-Type: application/postscriptContent-Transfer-Encoding: 7bitVersion: 1.1.6Derived-From: 1.1.5Expires: Thu, 06 Apr 1995 23:00:00 GMTTitle: HTTP/1.0URI: http://secure.no/moved.html

Page 37: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

Litteraturliste −−−

April 1995 #37 of 38

Her er litteratur om HTTP protokollen som erbrukt som grunnlag for foredraget:

Barners-Lee, Fielding andFrystyck Nielsen:Hypertext Transfer Protocoll HTTP/1.0HTTP-Working GroupInternet-draft: March 8, 1995

Hoestetler et. al.: A proposed exten-sion to HTTP:Digest Access AutenticationHTTP-Working GroupInternet-draft: March 24, 1995

Kristol: A proposedexension mechanism for HTTPHTTP-Working GroupInternet-draft: January 1995

Raggett: Mediated digestauthenticationHTTP-Working GroupInternet-draft: March 28, 1995

Spero: HTTP-NG Architectural Overview

Page 38: Hypertext Transfer Protocol og World Wide Web Dag Diesen … · 2015. 2. 13. · Hypertext Transfer Protocol (HTTP) for å overføre dokumentene fra en HTTP tjener til en WWW klient

URL−linker

April 1995 #38 of 38

URL-linkerHTTP spesifikasjonene kan nåes medfølgende URL-linker:

<URL:http://www.ics.uci.edu/pub/ietf/http/>

og

<URL:http://www.w3.org/hypertext/WWW/Protocols/Overview.html>