O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

[KSO] 4. ESKOLA (2017/02/22): APLIKAZIO maila: HTTP: datu bidalketa inprimaki formatuan

HTTP protokoloaren funtzionamendua deskribatu.
Zelan bidaltzen dira datuak bezerotik zerbitzarira? (Inprimakiak)

Audiolivros relacionados

Gratuito durante 30 dias do Scribd

Ver tudo
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

[KSO] 4. ESKOLA (2017/02/22): APLIKAZIO maila: HTTP: datu bidalketa inprimaki formatuan

  1. 1. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática HTTP HYPERTEXT TRANSFER PROTOCOL Konputagailu Sareen Oinarriak 4. ASTEA (2017/02/22) 1 Konputagailu Sareen Oinarriak by Oskar Casquero is licensed under a Creative Commons Reconocimiento 4.0 Internacional License.
  2. 2. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática TEORIA • HTTP protokoloaren funtzionamendua deskribatu. –Zelan bidaltzen dira datuak bezerotik zerbitzarira? (Inprimakiak) • Galdera horiek erantzuteko, adibideen bitartez HTTP protokoloaren semantika eta sintaxia deskribatuko dira: – Eskaera eta erantzunaren egitura. – Protokoloaren funtzionamendua inplementatzeko metodoak eta goiburuak. PRAKTIKA • Python-en HTTP bezeroak programatu: – Google-era konektatu RELOADED. –NAN letra lortu. – Irudi bat deskargatu. HELBURUAK 2
  3. 3. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Zelan bidaltzen da informazioa bezerotik zerbitzarira? (Inprimakiak) –HTTP bezero batek web zerbitzari bati datu mota ezberdinak bidali diezazkioke: • datuak formatu binarioan (adibidez: irudiak) • datuak JSON edo XML formatuetan • datuak inprimaki formatuan • Orain datuen bidalketa inprimaketa formatuan egiten ikasiko dugu, hau da, izen-balio bikote moduan bidaltzen diren datu kate laburrak, alegia. –Eredu orokorra: name1=value1&name2=value2&name3=value3 –Ereduaren adibidea: nan=12345678Z&izena=oskar&abizena=casquero HTTP-REN FUNTZIONAMENDUA: INPRIMAKIAK 3
  4. 4. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Demagun web zerbitzari batean NAN letra kalkulatzen duen baliabide bat dagoela. Baliabide horri nan izeneko parametroan NAN zenbakia duen HTTP eskaera bat bidaltzen bazaio, baliabideak NAN letra duen HTTP erantzun bat itzultzen du. • Datua inprimaki formatuan bidaltzeko, bezeroak HTTP eskaera horrela definitzen du: – Metodoa: POST – Mezuaren gorputza bereizteko goiburuak: • Content-Type: application/x-www-form-urlencoded • Content-Length – Izen-balio bikoteak era jakin batean kodifikatu (UTF-8 + ehuneko kodifikazioa) eta formateatu (izena=balioa eta “&” bikoteen arteko bereizle bezala) egin behar dira HTTP-REN FUNTZIONAMENDUA: INPRIMAKIAK POST /resource HTTP/1.1 Host: kso2017.com Accept: text/plain Content-Type: application/x-www-form-urlencoded Content-Length: 12 User-Agent: Python bezeroa dni=12345678 Eskaera baten adibidea HTTP/1.1 200 OK Date: Wed, 25 Nov 2015 08:07:43 GMT Content-Length: 1 Content-Type: text/plain Z Erantzun baten adibidea 4
  5. 5. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Inprimaki formatuan, edukiarentzako ondorengo kodifikazio prozedura zehazten da izen-balio bikotearen izen eta balio kateentzat: • Karaktere berezi bat (URI-an edo izen-balio bikote katean bereizle diren karaktereak) edo US- ASCII alfabetoan agertzen ez den karaktere bat kodifikatu nahi bada (adibidez, azentua duten karaktereak), izen-balio bikote katea osotu aurretik bi pausu burutu behar dira: 1. Karakterea UTF-8-n kodifikatu. – Adibidea 1: & 26 – Adibidea 2: á  C3 A1 2. Aurreko pausuaren emaitza “ehuneko” kodifikazioan (percent encoding) – Adibidea 1: 26  %26 – Adibidea 2: C3 A1  %C3 %A1 OHARRA: goiko adibide bakoitzean, karaktere bakarra kodifikatzen da; baina kodifikazio prozeduraren eraginez, zenbat karaktere bidaliko dira? – Adibidea 1: %26  3 karaktere: %, 2, 6 – Adibidea 2: %C3 %A1  6 karaktere: %, C, 3, %, A, 1 HTTP-REN FUNTZIONAMENDUA: DATUEN KODIFIKAZIOA INPRIMAKI FORMATUAN 5
  6. 6. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Adibidea: – bidali nahi diren datuak: izena=Iñaki y abizena=Pérez – mezuaren gorputzean kodifikatuko diren datuak: izena=I%C3%B1aki&abizena=P%C3%A9rez • izen-balio bikotearen izen eta balio kateetan zuriune bat agertzen bada, hau “+” batekin kodifikatzen da: – bidali nahi diren datuak: izena_abizena=Iñaki Pérez – mezuaren gorputzean kodifikatuko diren datuak: izena_abizena=I%C3%B1aki+P%C3%A9rez • “+” izen-balio bikotearen izen eta balio kateetan datu bezela erabili nahi bada, orduan UTF-8 + % kodifikazio prozedura jarraitu behar da: – bidali nahi diren datuak: num1=2, num2=2 y operator=+ – mezuaren gorputzean kodifikatuko diren datuak: num1=2&num2=2&operator=%2B HTTP-REN FUNTZIONAMENDUA: DATUEN KODIFIKAZIOA INPRIMAKI FORMATUAN 6
  7. 7. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática • Izen-Balio bikoteak mezuaren gorputzean bidali beharrean, URI-an bertan bidali daitezke “?” karakterea juntagailu bezela erabiliz  query string – Metodoa: GET – Ez dira Content-Type eta Content-Length goiburuak erabili behar • Query String-ean inprimaki formatudun datuak bakarrik bidali daitezke. • HTTP eskeraren egiturak query string-a mugatzen du: izen-balio bikoteen katea “?” karakterearen eta “ HTTP/1.1” katearen tartean kokatzen da. – Datuen kodifikazioa eta formatua lehengo moduan egiten da. – Desabantaila: bidali daitekeen datu koputua mugaturik dago: 1024 zortzikote. HTTP-REN FUNTZIONAMENDUA: INPRIMAKIAK GET /recurso?dni=12345678 HTTP/1.1 Host: kso2017.com Accept: text/plain User-Agent: Python bezeroa Eskaera baten adibidea HTTP/1.1 200 OK Date: Wed, 25 Nov 2015 08:07:43 GMT Content-Length: 1 Content-Type: text/plain Z Erantzun baten adibidea 7
  8. 8. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática 8 HTTP-REN FUNTZIONAMENDUA: HTML INPRIMAKIAK (*) image extracted from http://www.freedback.com/ <html> <head> <title>Formularioa</title> </head> <body> <p> <form method="GET" action="/app/servlet/contactUs"> <b>Izena: </b> <input type="text" name="name"> <br/> <b>Posta elektronikoa: </b> <input type="text" name="email"> <br/> <b>Mezua: </b> <input type="text" name="message"> <br/><br/> <input type="submit"> </form> </p> </body> </html>
  9. 9. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática 9 HTTP-REN FUNTZIONAMENDUA: HTML INPRIMAKIAK GET /app/servlet/contactUs?name=XXX&email=YYY&message=ZZZ HTTP/1.1 Host: kso2017.com Accept: text/html Accept-Language: en-US,en Connection: keep-alive POST /app/servlet/contactUs HTTP/1.1 Host: kso2017.com Accept: text/html Accept-Language: en-US,en Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 30 name=XXX&email=YYY&message=ZZZ
  10. 10. Oskar Casquero y María Luz Álvarez Dpto. Ingeniería de Sistemas y Automática JARDUERAK: DATUEN BIDALKETA INPRIMAKI FORMATUAN • NAN letra lortu – http://tic-investigacion-1.appspot.com/ • Irudi bat deskargatu – http://websystems-2.appspot.com/

×