Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna




category
Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Realizarea unui browser



Realizarea unui browser


REALIZAREA UNUI BROWSER



Sarcina lucrarii: de realizat un browser web utilizand C#.

Extras teoretic:

Protocolul HTTP.Descriere și definiție.

HTTP (Hypertext Transfer Protocol) este un protocol de comunicare pentru transferul informației in internet care sunt pastrate pe servere World Wide Web. Este protocolul implicit al WWW, care conform modelului de referința OSI este de nivel aplicație. Realizarea și evoluția acestui protocol este coordonata de W3C (WWW Consortium).

 Modul de funcționare: Cand se scrie o adresa in browser aceasta este convertita intr-o adresa IP (internet protocol) de catre protocolul DNS (domain name system). Dupa aceasta operație are loc trasnferul de date utilizand protocolul TCP pe portul 80 standard al serverului HTTP, acest transfer se face ca raspuns al cererii HTTP-GET.



Mesajele de cerere: Un mesaj HTTP este divizat intr-o parte de antet și o parte corp. Antetul cuprinde o serie de campuri (unele dintre ele obligatorii) oferind informații despre versiunea de protocol folosit, codificarea datelor, tipul de medii, lungimea și tipul mesajului etc.

Orice mesaj HTTP trebuie sa debuteze cu un camp indicand versiunea protocolului in prima linie a mesajului:

HTTP-Version ::= 'HTTP-Version' ':' 'HTTP' '/' digit '.' digit

In prezent este operațional protocolul 1.1 deci toate mesajele de cerere și de raspuns vor incepe cu linia HTTP/1.1.

Mesajele pot fi codificate conform autoritații IANA (Internet Assigned Numbers Authority) fiind permise codificarile:

* gzip (GNU zip) este un cod Lempel-Ziv (LZ77) cu suma de control pe 32 de biți

* compress este un cod produs de programul compress din toate mediile UNIX, dupa codificarea Lempel-Ziv-Welch (LZW)

Aceste codificari sunt specificate de campul Content-Transfer-Encoding.

Pentru MIME, se specifica tipul și subtipul mediului de informații (de exemplu: text/html, text/plain, image/jpeg, video/mpeg etc.) in campul Content-Type. Un mesaj poate fi transmis in format multipart, constand din mai multe entitați, toate avand o sintaxa comuna. Daca o aplicație recepționeaza un subtip nerecunoscut, in mod automat il va trata ca multipart/mixed.

Simbolul '*' specifica toate tipurile/subtipurile de medii dintr-o anumita categorie. De exemplu, pentru a accepta doar imagini, indiferent de format, se va transmite Accept: image/*. Pot fi specificați unul sau mai mulți factori de calitate relativa. De pilda, cererea Accept: audio/*; q=0.2, audio/basic este interpretata astfel: 'se prefera tipul audio/basic dar serverul va trebui sa trimita toate tipurile audio avand calitatea de cel puțin 80%'.

Metode:

HTTP permite 8 metode care indica operația dorita sa fie aplicata sursei identificate.

GET este cea mai folosita metoda, fiind utilizata atunci cand serverului i se cere o resursa. Reprezinta o cerere de accesare a unor informații (entitați) identificate de Request-URI. Semantica metodei GET se schimba in cerere condiționata daca mesajul de cerere include campuri antet If-Modified-Since, If-Match, If-Range etc. Daca se specifica un camp Range, atunci GET va specifica o cerere parțiala.

HEAD se comporta exact ca metoda GET, dar serverul returneaza doar antetul resursei, ceea ce permite clientului sa inspecteze antetul resursei, fara a fi nevoit sa obtina si corpul resursei.

POST a fost proiectata pentru a trimite date de intrare catre server. In cazul acestei metode datele se include in corpul cererii.


PUT este folosita pentru a depune documente pe server, fiind inversul metodei GET.

DELETE șterge sursa specificata.

TRACE: este o metoda folosita de obicei pentru diagnosticare, putand da mai multe informatii despre traseul urmat de legatura HTTP, fiecare server proxy adaugandu-si semnatura in antetul Via.

OPTIONS: este folosita pentru identificarea capacitatilor serverului Web, inainte de a face o cerere. Reprezinta o cerere de informații despre opțiunile de comunicare disponibile intr-un dialog cerere/raspuns.

CONNECT: este o metoda folosita in general de serverele intermediare.

Coduri de stare:  Pentru fiecare cerere a unui client, serverul HTTP raspunde cu o serie de coduri de stare a operației solicitate, dintre care menționez:

   1.Coduri de informare (1xx) care dau informații despre o anumita acțiune:

  *100 Continue - clientul poate continua cererea, trebuind sa trimita urmatoarea parte a unui mesaj parțial;

  *101 Switching Protocols - serverul ințelege cererea, dar necesita recepționarea unui camp Upgrade pentru a ști ce tip de protocol va fi folosit la nivelul aplicației (e.g. pentru transmiterea de informații multimedia, cand poate fi utilizat un protocol sincron, in timp-real);

   2.Coduri de succes (2xx) raporteaza efectuarea cu succes a unui operațiuni:

  * 200 Ok - cererea a fost rezolvata cu succes;

  *201 Created - o noua resursa a fost creata cu succes. Resursa creata poate fi identificata de URI-ul returnat de entitatea-raspuns, trebuind a fi generata inainte de returnarea codului (in caz contrar se trimite 202);

  *202 Accepted - cererea a fost acceptata spre procesare, dar inca n-a fost satisfacuta in intregime. Nu exista nici o facilitate pentru retransmiterea unui cod de stare in urma execuției unei operații asincrone;

  *204 No Content - serverul a rezolvat cererea, dar nu are ce returna;

   3. Coduri de redirectare (3xx) indica o redirectare, catre alta locație/server a cererii (de exemplu, la apariția marcatorului <meta name='refresh' content=''> in cadrul unui document HTML):

  *300 Multiple Choices - resursa ceruta corespunde uneia dintre reprezentarile multiple pe care le are;

  *301 Moved Permanently - resursa ceruta a fost asignata unui URI nou și orice referința viitoare la ea trebuie sa se realizeze prin acest URI returnat;

  *302 Moved Temporarily - resursa ceruta are un alt URI, pentru o perioada temporara;

  *303 See Other - raspunsul la cerere poate fi gasit la o alta locație URI și trebuie accesat folosind o metoda GET;

  *305 Use Proxy - resursa ceruta trebuie accesata printr-un proxy desemnat de campul Location;

   4. Coduri de eroare client (4xx) indica apariția unei erori pe partea clientului:

   *400 Bad Request - cererea n-a putut fi ințeleasa de server din cauza unei sintaxe eronate a metodei;

  *401 Unauthorized - cererea necesita autentificarea utilizatorilor, prin transmiterea unui camp Authorization;

  *403 Forbidden - serverul ințelege cererea, dar refuza s-o satisfaca din diverse metode;

  *404 Not found - serverul nu gasește resursa specificata de Request-URI;

  *406 Not Acceptable - resursa este incompatibila cu antetul cererii;

   5.Coduri de eroare server (5xx) sunt coduri semnificand o eroare pe partea serverului:

  *501 Not Implemented - serverul nu are implementata o funcționalitate necesara satisfacerii unei cereri;

  *502 Bad Gateway - serverul, lucrand ca poarta sau proxy, a receptionat un raspuns invalid de la alt server caruia i-a trimis cererea;

  *503 Service Unavailable - serverul nu poate satisface cererea, din cauza supraincarcarii temporare sau a unor ratiuni de administrare;

  *504 Gateway Timeout - timpul de așteptare a raspunsului a expirat.

Pot fi transmise și coduri de avertisment, cu valori cuprinse intre 0 si 99.

Securitate: Protocolul HTTP fiind bazat pe TCP/IP nu ofera suport pentru securitatea datelor, acest lucru fiind rezolvat, la nivel protocol, prin doua metode:

* SSL (Secure Socket Layer) este un sistem proiectat de Netscape care ofera o cale TCP/IP criptata intre doua mașini, suportand protocoalele HTTP, TELNET sau FTP. SSL folosește o varietate de sisteme de criptare pe chei publice și secrete. Implementarea HTTP pentru SSL se numeste HTTPS.

*SHTTP (Secure HTTP) este un sistem de criptare pentru HTTP conceput de CommerceNet, oferind mecanisme de securitate prin semnatura, autentificare și cifrare, folosite independent sau impreuna.

Concluzie: Pentru a efectua aceasta lucrare de laborator am studiat informațiile referitoare la protocolul HTTP, modul sau de funcționare, metodele utilizate, codurile de stare.

Alt punct important in realizarea acestei lucrari de laborator a fost crearea unui browser web, adica a instrumentului de accesare a internetului, browser-ul creat de mine este unul tipic, care conține butoanele cele mai des intalnite la un browser.

 In urma adancirii in materie pot concluziona ca protocolul HTTP va fi inca mult timp protocolul implicit al WWW deoarece nu are multe neajunsuri, insa cele care apar in timp sunt eliminate prin gasirea de noi metode de implementare, de exemplu securitatea a fost asigurata datorita SHTTP.


Anexa 1:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


namespace lab1



private void toolStripButton1_Click(object sender, EventArgs e)



private void toolStripButton2_Click(object sender, EventArgs e)



private void toolStripButton3_Click(object sender, EventArgs e)



private void toolStripButton4_Click(object sender, EventArgs e)



private void toolStripButton5_Click(object sender, EventArgs e)



private void toolStripTextBox1_KeyUp(object sender, KeyEventArgs e)



private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)



Anexa 2:






Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright