Dainius Četrauskas IFK

Slides:



Advertisements
Similar presentations
Building a Simple Web Proxy
Advertisements

Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
DEV034 -Web Applications, Introduction
Web basics HTTP – – URI/L/Ns – HTML –
HTTP Hypertext Transfer Protocol. HTTP messages HTTP is the language that web clients and web servers use to talk to each other –HTTP is largely “under.
How the web works: HTTP and CGI explained
Hypertext Transport Protocol CS Dick Steflik.
 What is it ? What is it ?  URI,URN,URL URI,URN,URL  HTTP – methods HTTP – methods  HTTP Request Packets HTTP Request Packets  HTTP Request Headers.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
Copyright (c) 2010, Dr. Kuanchin Chen1 The Client-Server Architecture of the WWW Dr. Kuanchin Chen.
Tools for Web Applications. Overview of TCP/IP Link Layer Network Layer Transport Layer Application Layer.
WWW, HTTP, GET, POST, Cookies Svetlin Nakov Telerik Corporation
The Basics of HTTP Jason Dean
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications 4.1 Web Access - HTTP.
Web Server Design Week 3 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 1/23/06.
What’s Really Happening
How HTTP Works Made by Manish Kushwaha.
Building Web Apps with Servlets
Web Basics: HTML and HTTP
Hypertext Transfer Protocol
HTTP – An overview.
Hypertext Transfer Protocol
Networking CS 3470, Section 1 Sarah Diesburg
The Hypertext Transfer Protocol
How does it work ?.
1993 version of Mosaic browser.
COMP2322 Lab 2 HTTP Steven Lee Feb. 8, 2017.
Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Web Server Design Week 4 Old Dominion University
HTTP Protocol Specification
Hypertext Transfer Protocol
Hypertext Transport Protocol
HTTP Protocol.
Application HTTP.
Darbą parengė: Viktorija Drūteikaitė IT2
Uniform Resource Locators
WEB API.
Ernestas Kaukėnas MIF IT 3grupė
HTTP Hypertext Transfer Protocol
Hypertext Transfer Protocol
CS320 Web and Internet Programming Cookies and Session Tracking
Networking CS 3470, Section 1 Sarah Diesburg
HTTP Request Method URL Protocol Version GET /index.html HTTP/1.1
Daugelio dokumentų sąsaja (angl. Multiple document interface)
Hypertext Transfer Protocol
Uniform Resource Locators (URLs)
CS3220 Web and Internet Programming Cookies and Session Tracking
Hypertext Transfer Protocol
Hypertext Transfer Protocol (HTTP)
CS3220 Web and Internet Programming Handling HTTP Requests
Hypertext Transfer Protocol
The HTTP Protocol COSC 2206 Internet Tools The HTTP Protocol
The Application Layer: HTTP
Uniform Resource Locators

Requests and Server Response Codes
Web Server Design Week 5 Old Dominion University
CS3220 Web and Internet Programming Cookies and Session Tracking
Application Layer Part 1
HTTP Hypertext Transfer Protocol
Uniform Resource Locators (URLs)
Hypertext Transfer Protocol
CSCI-351 Data communication and Networks
Web Server Design Week 3 Old Dominion University
Web Server Design Week 3 Old Dominion University
Presentation transcript:

Dainius Četrauskas IFK-4 2006-11-08 HTTP protokolas Dainius Četrauskas IFK-4 2006-11-08

HTTP protokolas. Hyper Transfer Protocol (HTTP) – tai programinio lygio protokolas naudojamas informacijos mainams žiniatinklyje (WWW). Pagrindinis šio protokolo tikslas buvo suteikti galimybę skelbti ir peržiūrėti HTML puslapius. Tarp paplitusių protokolų: FTP, NNTP, SMTP... HTTP protokolas yra dažniausiai naudojamas. HTTP protokolas pagrįstas užklausų/atsakymų apsikeitimu tarp kleinto ir serverio.

HTTP protokolo versijos Nebepalaikoma. Palaiko tik GET užklausą. Nepalaiko antraščių (headers). Kadangi nepalaikomas POST metodas, klientas serveriui gali perduoti labai mažai informacijos. HTTP 1.0 Vis dar labai plačiai naudojama, ypač proxy serverių. Palaiko susijungimą aktyvų, todėl to paties susijungimo metu galima įvykdyti keletą užklausų/atsakymų. Tačiau tai veikia tik tada, kai jungiamasi ne per proxy serverius. Neišlaiko būvio/konteksto informacijos.

HTTP protokolo versijos Einamoji protokolo versija. Pagal nutylėjimą palaiko aktyvius susijungimus, kurie puikiai veikia ir jungiantis per proxy serverį. Leidžia išsiųsti keletą užklausų vienu metu, taip pagreitinant duomenų persiuntimą vartotojui. Įmanoma identifikuoti host’o vardą. Naršykė siunčia Host: www.which.one protokolo galvutėje header kiekvienoje užklausoje. Tai pagreitina susisiekimą, jei mašinoje sukasi keli virtualūs web serveriai. Naudojant šį protokolą, turinys gali būti pateikiamas įvairiais formatais: PostScript, PDF, arba tiesiog kaip paprastas tekstas.

HTTP 1.1 pavyzdys $telnet 209.85.129.99 80 Trying 209.85.129.99... Connected to 209.85.129.99. Escape character is '^]'. GET / HTTP/1.1 HOST: www.google.lt HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html Set-Cookie: PREF=ID=40bd7c2c921c6ab3:TM=1162931530:LM=1162931530:S=L3Pbcv7-v8RliRvc; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.lt Server: GWS/2.1 Transfer-Encoding: chunked Date: Tue, 07 Nov 2006 20:32:10 GMT <html></html>

HTTP užklausų sintaksė Kliento užklausos sintaksė: [METH] [REQUEST-URI] HTTP/[VER] [fieldname1]: [field-value1] [fieldname2]: [field-value2] ...

HTTP užklausų sintaksė Kliento užklausos pavyzdys: GET / HTTP/1.1 Host: www.google.lt User-Agent: User-Agent: Opera/9.02 (Windows NT 5.1; U; en) Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain Accept-Language: en-us,en;q=0.5 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: PREF=ID=5a52155dae6c60d6:TM=1162195354:LM=1162195354:S Cache-Control: max-age=0

HTTP užklausų sintaksė Serverio atsakymo sintaksė: HTTP/ [VER] [CODE] [TEXT] Field1: Value1 Field2: Value2 ... [Dokumento turinys] Pirma eilutė rodo HTTP versiją, po to seka trijų skaitmenų skaičius(HTTP būklės kodas) ir priežąsties frazė, suprantama žmonėms. Dažnai tai būna kodas 200, kas reiškia viskas tvarkoje. Po pirmos eilutės seka eilė eilučių, vadinamų galvute, kuriose yra informacija apie dokumentą. Galvutės baigiasi tuščia eilute, po kurios seka dokumento turinys

HTTP serverio atsakymų kodai. 200: OK 201: Created 202: Accepted 203: Non-Authoritative Information 204: No Content 205: Reset Content 206: Partial Content 207: Multi-Status 400: Bad Request 401: Unauthorized 402: Payment Required 403: Forbidden 404: Not Found 405: Method Not Allowed 500: Internal Server Error 501: Not Implemented 502: Bad Gateway 503: Service Unavailable 504: Gateway Timeout

HEAD GET POST HTTP užklausų metodai Panaudojus šią užklausą vykdoma beveik tokia pati operacija kaip ir naudojant GET užklausą, tačiau parsiunčiamas ne visas turinys, o tik <head></head> antraštė. Tai naudinga norinti pasiimti meta duomenis. GET Plačiausiai naudojamas metodas. Jį panaudojus, klientui parsiunčiamas nurodytas resursas. POST Iš HTML formos nusiunčia duomenis nurodytam šaltiniui.

PUT DELETE TRACE OPTIONS HTTP užklausų metodai Nusiunčia serveriui nurodytą resursą. DELETE Ištrina nurodytą resursą. TRACE Nusiunčia atgal gautą užklausą. Tokiu būdu klientas gali matyti tarpinius serverius, per kuriuos keliauja užklausa. OPTIONS Sugražina metodų, kuriuos palaiko serveris, sąrašą. Gali būt naudojamas tikrinti serverio funkcionalumui.

CONNECT HTTP užklausų metodai Šis metodas paprastai yra naudojamas sukurti tuneliuotam susijungimui, per kurį gali būti perduodamas šifruotas SSL srautas.

GET, HEAD POST, PUT, DELETE HTTP metodų saugumas Šie metodai apibūdinami kaip saugūs, nes jie gali būti panaudoti tik informacijos gavimui iš serverio, nepadarant jokių pakeitimų pačiam serveryje. POST, PUT, DELETE Nesaugūs metodai. Jais gali būt išsiunčiami vartotojo duomenys, bei atliekami tam tikri pakeitimai web serveryje. Todėl rekomenduojama, kuriant tinklalapius tokius metodus atvaizduot ne kaip link’us, bet mygtukų pagalba, kad vartotojas suvoktų galimas pasekmes.

HTTP protokolas. GET metodas GET metodas gali būti naudojamas tam tikrų užklausą nusakančių parametrų perdavimui. GET gali persiųsti serveriui nedidelį duomenų kiekį. Tai yra tais atvejais, kai užklausos URI nėra failas, o pavyzdžiui specifinė užklausa specifinei duomenų bazei. CGI scriptui irgi galima persiųsti duomenis naudojant GET užklausą; duomenys tokiu atveju yra nurodomi po ? simbolio. Pavyzdžiui: GET /path/script.cgi?field1=value1&field2=value2 HTTP/1.0 Tai “URL-encoded” duomenų pavyzdys. Tai naudojama esant nedideliems duomenų kiekiams. Kitais atv naudotinas POST metodas

HTTP protokolas. URL encoding. URL specifikacija (RFC 1738, Dec. '94) pasižymi ta problema, kad ji riboja URL naudojamų ženklų kiekį tam tikra US-ASCII simbolių aibe: "...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL.“ HTML, iš savo pusės leidžia visą rinkinį simbolių, nusakomų ISO-8859-1 (ISO-Latin) HTML4 išplečia leidžiamus simbolius įtraukdama ir aibę Unicode character set. Ne-ISO-8859-1 simboliai (simboliai, kurių kodas virš FF hex/255 decimal iš Unicode grupės), nėra naudojami užduodant URL, kadangi nėra saugaus būdo, kuris leistų nusakyti simbolių rinkinį nusakant URL [RFC2396.] URL gali būti koduojami visur HTML dokumente, kada URL yra nurodoma importui kažkurio objekto (A, APPLET, AREA, BASE, BGSOUND, BODY, EMBED, FORM, FRAME, IFRAME, ILAYER, IMG, ISINDEX, INPUT, LAYER, LINK, OBJECT, SCRIPT, SOUND, TABLE, TD, TH, ir TR elementams.)

HTTP protokolas. URL encoding. Character (Hex) Space 20 Quotation marks 'Less Than' symbol ("<") 'Greater Than' symbol (">") 22 3C 3E 'Pound' character ("#") 23 Percent character ("%") 25 Misc. characters:    Left Curly Brace ("{")    Right Curly Brace ("}")    Vertical Bar/Pipe ("|")    Backslash ("\")    Caret ("^")    Tilde ("~")    Left Square Bracket ("[")    Right Square Bracket ("]")   Grave Accent ("`") 7B 7D 7C 5C 5E 7E 5B 5D 60

HTTP protokolas. URL encoding. Pavyzdys www.kazkas.org/aaa bbb\ccc~bla www.kazkas.org/aaa%20bbb%5Cccc%7Ebla “ “ -> %20 “\” -> %5C “~” -> %7E

Informacijos šaltiniai: HTTP protokolas Informacijos šaltiniai: http://www.w3.org/Protocols/ http://en.wikipedia.org http://www.blooberry.com/indexdot/html/topics