Forstå HTTP-protokollen (del 2)

Hvis du gikk glipp av første artikkelen i denne serien kan du gå lese, forstå HTTP-protokollen (del 1).
Hvis du ønsker å lese neste artikkel i denne serien kan du sjekke ut Forstå HTTP-protokollen (del 3).

HTTP protokollen

Vel, vi så i første del av HTTP artikkelen at det er visse verdier at en webklient vil sende til en webserver. Dette gjøres for å sikre at både klienten og serveren vil snakke samme språk, som det var. Disse spesifikke verdier blir sendt, og deretter analyseres av webserveren gang mottatt av kunden.

Nå synes en god tid til å påpeke at de fleste alt på Internett i dag kommuniserer på en bestemt måte. At det å være de observere klient /server modell. I tilfelle av HTTP er Internet Explorer klienten, og IIS serveren. Et annet tilfelle ville være klienten Mozilla Firefox, og Apache webserver. Det er noen viktige unntak fra denne regelen selv, kan du tenke på en?

Er all verden en klient /server modell?

Mye til irritasjon for organisasjoner som RIAA og MPAA den p2p protokollen ikke observere klient /server modell. Peer to peer fungerer mye som navnet dvs: direkte peer to peer-tilkoblinger. P2P bruker ikke sentraliserte servere, men er heller utelukkende består av klientmaskiner. Det nærmeste til en server som P2P bruker er en supernode som er nok en gang du gjettet det, en klient. Nok sagt om P2P skjønt, og nå tilbake til temaet for hånden! Oh! Ikke la deg lure til å tro at trojanere opererer som p2p-programmer på grunn av deres felles bruk av flyktige porter. Trojanere veldig mye operere i en klient /server konfigurasjon. Før jeg bli distrahert igjen, tilbake til HTTP vi går.

Djevelen er i detaljene

Vel ovenfor bemerket forklaring nå bringer oss tilbake til vår pakke sees nedenfor. Vi skal nå begynne å gå gjennom de ulike beregninger, som sett i ASCII innhold, og utvide på deres mening. Som tittelen ovenfor dette avsnittet sier, er djevelen veldig mye i detaljene. Vær oppmerksom på at jeg vil gjøre mine kommentarer rett under pakken.

10: 14: 50,526262 IP (TOS 0x10, ttl 55, id 29186, offset 0, flagg [ingen], proto: TCP (6), lengde: 1 470) 72.14.207.99.80 > 192.168.1.100.1722:., Cksum 0xbe07 (riktig), 3866955399: 3866956829 (1430) ack 3141402927 vinne 6432
0x0000: 4510 05be 7202 0000 37 06
32aa 480E cf63 E ... r. ..7.2.H..c
0x0010: c0a8 0164 0050 06ba e67d 0e87 bb3e 012f ... dP ..} ... > ./
0x0020: 5
010 1 920 be07 0000 4854 5450 2f31 2e31
P ....... HTTP /1.1
0x0030: 2032 3030 204F 4b0d 0a43 6163 6865 2d43 .200.OK .. Cache-C
0x0040: 6f6e 7472 6f6c 3a20 7072 6976 6174 650D -regulering. .private
0x0050: 0a43 6f6e 7465 6e74 2d54 7970 653a 2 074 .Content-Type : .T
0x0060: 6578 742f 6874 6d6c 0d0a 5365 7276 6572 ext /html..Server
0x0070: 3a20 4757 532f 322E 310d 0a54 7261 6e73 :. GWS /2.1..Trans
0x0080: 6665 722d 456e 636f 6469 6e67 3a20 6368 fer-Encoding: .ch
0x0090: 756e 6b65 640D 0a44 6174 653a 2 053 6174 unked ..Date: .Sat
0x00a0: 2c20 3330 204a 756c 2 032 3030 3520 3134 ,. 30.Jul.2005.14
0x00b0: 3a31 343a 3530 2 047 4d54 0d0a 0d0a 6132 : 14: 50.GMT .... a2
0x00c0: 630d 0a3c 6874 6d6c 3e3c 6865 6164 3e3c c .. < html > < head > <
0x00d0: 6d65 7461 2 068 7474 702d 6571 7569 763d meta.http-ekv =
0x00e0: 2 263 6f6e 7465 6e74 2d74 7970 6522 2 063 "content-type" .c

Godt å begynne med vi bør vite hvor i pakken HTTP data faktisk starter. Hvis du har fremdeles at TCP /IP og tcpdump flyer jeg anbefalt du laste ned nederst på siden jeg bare hyperkoblet til vi kan lett finne ut hvor dataene starter. Vi kan se fra den understrekede 06 at protokollen blir fraktet om er TCP. Fra understreket verdien fem vet vi at det ikke er noen alternativer i TCP spissen. Med denne informasjonen i hånden vi vet da at HTTP data starter ved understrekede 4854 og bærer på enden av selve pakken. Dette er en rask og enkel måte å orientere deg om innholdet i pakken. Med det nå jobbet med la oss begynne å bryte ut serversvar som sett i pakken ovenfor.

Tid for å bust ut info!

HTTP /1.1 200 OK Anmeldelser

Den understreket tekst ovenfor vises i ASCII innholdet i pakken. Det er også understreket i selve pakken ovenfor. Dette sier at at webserveren bruker HTTP-protokollen versjon 1.1. Det betyr også at dokumentet web-klienten ønskede har blitt funnet, og er inkludert i responsen. Den numeriske verdi 200 som sett faktisk er en statuskode. Mer senere å følge på statuskoder, og deres rolle

Cache-Control:. Privat

Denne kryptiske lille feltet betyr at dokumentet sendes til webklienten er ikke å bli lagret ved fullmektig, og er kun ment for brukeren ber om dokumentet. Det er en hel masse mer å caching, og hvordan det fungerer. Interessant lesning hvis man er så tilbøyelig

Content-Type:. Text /html

Vist ovenfor er hva serveren forteller til klienten vil si: at den medfølgende dokument som sendes er i en text /html-format. På den måten webklienten vil vite å gjengi informasjonen.

Server: GWS /2.1

Identifiserte her er den type server, eller server programvare som brukes av du gjettet det, webserveren. I dette tilfellet type server som brukes av Google.

Transfer-Encoding: du delvis

I HTTP 1.1 pakkeoverført kode er støttet. Hva gjør det om du spør? Vel enkelt sagt, pakkeoverført kode vil endre kroppen til en melding slik at den kan overføres som en serie av biter. Hver del har sin egen størrelse indikator. I motsetning til en normal HTTP filoverføring vil inneholde et "Content-Length" felt som angir mengden av data som overføres.

Dato: Lør 30 juli 2005 14:14:50 GMT

Vel, vi kan slutte fra denne linjen at det ville være den dato og klokkeslett i GMT som sett på den serveren. Det var en var ganske enkelt å gjette på, og være riktig. Ble de alle til å være så lett

<! Html > < head > < meta.http-equiv = "content-type"

For de av dere som kan være ukjent med HTML-kode, og hvordan det ser ut, være klar over at det understrekede delen ovenfor er faktisk HTML-kode. En ganske god giveaway, så vel som du ser HTML er bruk av < > før hver kode. Det er via denne HTML-kode som nettleseren dvs: Internet Explorer, vet hvordan du skal gjengi siden til deg. Via alt dette HTML er fargen på siden, og hvor all informasjon selv er formatert, det være seg i paragraf form, kule, eller bord.

Dersom du ønsker å sjekke ut alle HTML finnes i nettsiden du er i dag leser (dette dokumentet!) må du klikke på "Vis" i nettleseren, klikk deretter på "Source". Gjør du det vil vise nettsiden i sin kildekode format. Ganske ryddig eh! Hvis du vil ha mer moro da bare lime inn websider kildekoden i si notepad og gjort noen endringer, og legg den siden. Du vil se at du nå har endret innholdet på den siden. Nok en gang som ville lokke fram en "ganske godt" kommentar fra meg.

Vel på dette notatet vil vi bryte denne artikkelen på dette punktet. Jeg vil dekke i siste del av serien på HTTP mer av bagateller av HTTP, og måter å spille, eller endre HTTP-forespørsler. Till deretter holde et tett øye med dine pakker!

Hvis du gikk glipp av første artikkelen i denne serien kan du gå lese, etter Forstå HTTP-protokollen (del 1)
< EM>.
Hvis du ønsker å lese neste artikkel i denne serien kan du sjekke ut Forstå HTTP-protokollen (del 3).