Come configurare smartphone e PC. Portale informativo

Scopri cos'è "Uri" in altri dizionari. Altri schemi URL

URL(Localizzatore di risorse uniformi)- un localizzatore uniforme (identificatore di posizione) della risorsa. URLè un modo standardizzato di scrivere l'indirizzo di una risorsa su Internet.

URI(Identificatore uniforme della risorsa)- identificatore di risorsa unificato (uniforme). URIè una sequenza di caratteri che identifica una risorsa astratta o fisica.

URI - è più concetto generale, anziché l'URL. Un URI non sempre indica come ottenere una risorsa, a differenza di un URL, ma la identifica solo. Un URL è un URI che, oltre a identificare una risorsa, fornisce anche informazioni sulla posizione di tale risorsa. In effetti, qualsiasi URL contiene informazioni sufficienti per individuare con precisione la pagina. Più avanti in questo corso, quando utilizzeremo gli indirizzi dei siti web, ci atterremo alle abbreviazioni degli URL.

Struttura dell'indirizzo del sito

Torniamo a URL http://school.it2moro.ru/ . Può essere diviso in 3 parti:

  1. http://
  2. scuola
  3. it2moro

Prima parte indirizzi (http://) definisce il protocollo di interazione tra il browser e il server. Nel nostro caso, questo è il protocollo HTTP, di cui parleremo più avanti.

Seconda parte la barra degli indirizzi è chiamata SUBDOmain e terzo - dominio. Servono per identificare un sito specifico utilizzando il servizio DNS. DNS (Domain Name System) - computer sistema distribuito per informazioni sui domini. Molto spesso utilizzato per ottenere un indirizzo IP da un nome host (computer o dispositivo). Sulla rete sono presenti numerosi server DNS che, in base al nome di dominio di una risorsa, possono “raccontare” la sua reale posizione, determinata dal suo indirizzo IP.

Codice sorgente della pagina HTML

Ora diamo un'occhiata a cosa riceve il browser in risposta alla richiesta HTTP generata. Una pagina può essere composta da testo, immagini, collegamenti ipertestuali, campi di input, pulsanti e altri elementi. Le informazioni su tutto ciò sono state trasferite dal server web al browser, che ha generato l'aspetto finale della pagina. I dati trasmessi vengono descritti utilizzando il protocollo HTML.

HTML(HyperText Markup Language, linguaggio di markup ipertestuale)- un linguaggio di markup standard per i documenti su Internet. Linguaggio HTML interpretato dal browser e visualizzato come documento in formato leggibile dall'uomo.

Possiamo dire che i browser svolgono due funzioni principali: interagiscono con i server web tramite Richieste HTTP , oltre a convertire il codice HTML ricevuto dal server in una rappresentazione visiva.

URI (Identificatore di risorsa uniforme) - identificatore di risorsa unificato (uniforme). L'URI è una stringa di caratteri che consente di identificare qualsiasi risorsa: un documento, un'immagine, un file, un servizio, una casella di posta elettronica, ecc. Prima di tutto, stiamo ovviamente parlando delle risorse di Internet e del World Wide Web. Gli URI forniscono un modo semplice ed estensibile per identificare le risorse. L’estensibilità degli URI significa che diversi schemi di identificazione esistono già all’interno degli URI e molti altri ne verranno creati in futuro.

Relazione tra URI, URL e URN

Diagramma di Venn che mostra i sottoinsiemi dello schema URI: URL e URN.

Un URI è un URL o un URN o entrambi.

  • Un URL è un URI che, oltre a identificare una risorsa, fornisce anche informazioni sulla posizione di tale risorsa.
  • Un URN è un URI che identifica solo una risorsa in uno spazio dei nomi specifico (e quindi in un contesto specifico), ma non ne indica la posizione. Ad esempio, l'URN urn:ISBN:0-395-36341-1 è un URI che punta alla risorsa (libro) 0-395-36341-1 nello spazio dei nomi ISBN, ma a differenza di un URL, un URN non punta a la posizione di quella risorsa: non dice in quale negozio puoi acquistarla o su quale sito web puoi scaricarla.

Poiché un URI non sempre indica come ottenere una risorsa, a differenza di un URL, ma la identifica soltanto, ciò rende possibile descrivere tramite RDF (Resource Description Framework) risorse che non possono essere ottenute su Internet (ad esempio, una persona, un'auto, una città, ecc.).

Storia

Nel 1990, il localizzatore di risorse URL è stato inventato dallo scienziato britannico Tim Berners-Lee a Ginevra, in Svizzera, all'interno delle mura del Consiglio europeo per la ricerca nucleare. Poiché l'URL è il sottoinsieme dell'URI più utilizzato, anche il 1990 è considerato l'anno di nascita dell'URI. Ma a rigor di termini, il concetto di URI è stato documentato solo nel giugno 1994 nella RFC 1630.

Una nuova versione L'URI è stato definito nel 1998 nella RFC 2396, contemporaneamente alla parola universale nel titolo è stato sostituito da Uniforme.

Screpolatura

L'URL è diventato un'innovazione fondamentale su Internet e i principi dell'URI sono stati documentati per garantire la piena compatibilità con gli URL. Da qui deriva il grande svantaggio degli URI, che derivano dall'eredità degli URL. Gli URI, come gli URL, possono utilizzare solo un set limitato di caratteri latini e punteggiatura (anche meno di ASCII). In altre parole, se vogliamo utilizzare caratteri cirillici, o geroglifici, o, ad esempio, caratteri specifici della lingua francese in un URI, allora dovremo codificare l'URI nello stesso modo in cui Wikipedia codifica gli URL con caratteri Unicode. Ad esempio, una riga come:

https://ru.wikipedia.org/wiki/Cyrillic

codificato nell'URL come:

https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0

Poiché le lettere di tutti gli alfabeti tranne quello utilizzato in lingua inglese L’alfabeto latino, quindi gli URI con parole in altre lingue (anche europee) perdono la capacità di essere percepiti dalle persone. E questo è in palese contraddizione con il principio dell’internazionalismo proclamato da tutte le principali organizzazioni di Internet, compresi il W3C e l’ISOC. Lo standard IRI è destinato a risolvere questo problema. Identificatore di risorsa internazionalizzato) - identificatori di risorse internazionali in cui i caratteri Unicode potrebbero essere utilizzati senza problemi e che non violerebbero i diritti di altre lingue. Inoltre, il creatore dell'URI, Tim Berners-Lee, ha affermato che il sistema dei nomi di dominio sottostante l'URL è brutta decisione, che impone un'architettura gerarchica sulle risorse inadatta al web ipertestuale.

Struttura dell'URI

URI = [schema ":"] gerarchico - Parte [ "?" richiesta] [frammento "#"]

In questa voce:

schema

schema per accedere a una risorsa (spesso indicando un protocollo di rete), ad esempio http, ftp, file, ldap, mailto, urn

Parte gerarchica

contiene dati, solitamente organizzati in forma gerarchica, che, insieme ai dati in una componente non gerarchica richiesta, servono per identificare una risorsa nell'ambito dello schema URI. Generalmente parte gerarchica contiene il percorso della risorsa (ed eventualmente, prima di esso, l'indirizzo del server su cui si trova) o l'identificatore della risorsa (nel caso di un URN).

Richiesta

questo componente URI facoltativo è descritto sopra.

Frammento

(anche un componente opzionale)

Permette di identificare indirettamente una risorsa secondaria facendo riferimento a quella primaria e indicandola Informazioni aggiuntive. Una risorsa identificabile secondaria può essere una parte o un sottoinsieme di una risorsa primaria, una sua rappresentazione o un'altra risorsa definita o descritta da tale risorsa.

Analisi della struttura dell'URI. Per il cosiddetto “parsing” degli URI analisi), cioè per scomporre un URI nelle sue parti componenti e successivamente identificarle, è più conveniente utilizzare il sistema delle espressioni regolari, che ora è disponibile in quasi tutti lingue moderne programmazione. RFC 3986 consiglia di utilizzare il modello seguente per analizzare gli URI:

Questo modello include 9 gruppi indicati dai numeri sopra (per ulteriori informazioni su modelli e gruppi, vedere Espressioni regolari), che analizzano in modo più completo e accurato la tipica struttura dell'URI, dove:

  • gruppo 2 - schema,
  • gruppo 4 - fonte,
  • gruppo 5 - percorso,
  • gruppo 7 - richiesta,
  • gruppo 9 - frammento.

Pertanto, se utilizzi questo modello per analizzare, ad esempio, un URI tipico:

http://www.ics.uci.edu/pub/ietf/uri/#Related

quindi i 9 gruppi di pattern sopra riportati daranno rispettivamente i seguenti risultati:

  1. http:
  2. //www.ics.uci.edu
  3. www.ics.uci.edu
  4. /pub/ietf/uri/
  5. nessun risultato
  6. nessun risultato
  7. #Imparentato
  8. Imparentato

Esempi di URI:

URI assoluti

  • https://ru.wikipedia.org/wiki/URI
  • ftp://ftp.is.co.za/rfc/rfc1808.txt
  • file://C:\NomeUtente.NomeHost\Progetti\Articoli_Wikipedia\URI.xml
  • file:///C:/file.wsdl
  • file:///Users/John/Documents/Projects/Web/MyWebsite/about.html
  • ldap:///c=GB?objectClass?one
  • posta: [e-mail protetta]
  • sorso: [e-mail protetta]
  • notizie:comp.infosystems.www.servers.unix
  • data:text/plain;charset=iso-8859-7,%be%be%be
  • telefono:+1-816-555-1212
  • telnet://192.0.2.16:80/
  • urna:oasi:nomi:specifica:docbook:dtd:xml:4.1.2

2) URI relativi

  • /relative/URI/con/assoluto/percorso/della/risorsa.txt
  • //example.org/scheme-relative/URI/with/absolute/path/to/resource.txt
  • relativo/percorso/della/risorsa.txt
  • ../../../risorsa.txt
  • risorsa.txt
  • /risorsa.txt#frag01
  • #frag01

[stringa vuota] - equivalente all'analisi dell'identificatore con il risultato [stringa vuota], ovvero il collegamento porta all'oggetto predefinito nello schema predefinito

Servizio DNS

DNS - Sistema dei nomi di dominio. I nomi di dominio DNS sono sinonimi di indirizzi IP, proprio come i nomi nella rubrica del tuo telefono sono sinonimi di numeri di telefono. Sono simbolici, non numerici; sono più convenienti per la memorizzazione e l'orientamento; portano un carico semantico. www.irnet.ru → Tabelle DNS →193.232.70.36 Anche i nomi di dominio sono univoci, cioè Non esistono due nomi di dominio identici al mondo. I nomi di dominio, a differenza degli indirizzi IP, sono facoltativi;

Riso. 2. Gerarchia nel sistema DNS.

Anche gli indirizzi indicati sulle buste quando si consegnano lettere tramite posta ordinaria sono unici. Non esistono paesi al mondo con gli stessi nomi. E se i nomi delle città a volte si ripetono, in combinazione con la divisione in unità amministrative più grandi come distretti e regioni diventano unici. E i nomi delle strade non dovrebbero essere ripetuti all’interno della stessa città. Pertanto l'indirizzo, basato sui nomi geografici e amministrativi, identifica in modo univoco la destinazione. I domini hanno una gerarchia simile. I nomi di dominio sono separati l'uno dall'altro da punti: lingvo.yandex.ru, krkime.com.

Il DNS ha le seguenti caratteristiche:

  • Amministrazione distribuita. Diverse persone o organizzazioni sono responsabili di diverse parti della struttura gerarchica.
  • Archiviazione distribuita delle informazioni. Ogni nodo della rete deve necessariamente memorizzare solo i dati in esso contenuti ambito di responsabilità e (possibilmente) indirizzi server DNS root.
  • Informazioni sulla memorizzazione nella cache. Nodo Forse memorizzare una certa quantità di dati al di fuori della propria area di responsabilità per ridurre il carico sulla rete.
  • Struttura gerarchica, in cui tutti i nodi sono combinati in un albero e ciascun nodo può determinare indipendentemente il funzionamento dei nodi inferiori, oppure delegare(trasmetterli) ad altri nodi.
  • Prenotazione. Diversi server, separati sia fisicamente che logicamente, sono responsabili della memorizzazione e della manutenzione dei propri nodi (zone), il che garantisce la sicurezza dei dati e la continuazione del lavoro anche in caso di guasto di uno dei nodi.

Livelli di dominio. Esistono tre livelli di domini.

Domini prima o livello superiore sono divisi in due gruppi:

1) Si tratta di domini con affiliazione territoriale, ad esempio: .ru .by .ua .de .us, ecc. Cioè si tratta di domini assegnati a un paese specifico. Usandoli, puoi, ad esempio, determinare a quale paese appartiene un determinato sito.

2) Il secondo gruppo di domini di primo livello sono domini con uno scopo specifico. Ad esempio: .com - per organizzazioni commerciali, .info - per siti di informazione, .tv - per società televisive, ecc. Utilizzando questi domini, è possibile determinare il focus specifico del sito. Anche se, a dire il vero, ultimamente vengono sempre più utilizzati in qualsiasi modo e spesso non aderiscono al loro scopo.

I domini di primo livello non possono essere utilizzati come indirizzo del tuo sito web. Vengono utilizzati per creare domini secondo livello , quindi, puoi registrare un dominio di secondo livello su uno qualsiasi dei domini di primo livello. Un dominio di secondo livello è composto dai seguenti elementi: www.nome_sito.dominio di primo livello. Ad esempio: www.webmastermix.ru. Si consiglia di utilizzare nomi di dominio di secondo livello per l'indirizzo del sito. Sono letti e ricordati meglio dalle persone e vengono anche percepiti dai motori di ricerca. Pertanto, la maggior parte dei siti ha nomi di dominio a questo livello.

Inoltre ci sono i domini terzo livello . Vengono creati sulla base di domini di secondo livello. Il dominio di terzo livello è simile a questo: www.forum.webmastermix.ru. Registrando un dominio di secondo livello puoi creare autonomamente quanti domini di terzo livello desideri basati su di esso. Puoi registrare un nome di dominio per il tuo sito web utilizzando servizi speciali.

TECNOLOGIE WEB: HTML, JAVASCRIPT

La prima parte del blocco didattico del suddetto argomento è stata dedicata alle tecnologie Internet. Ora iniziamo a studiare le tecnologie utilizzate in World Wide Web o tecnologie web.

Innanzitutto è necessario comprendere i concetti di base delle tecnologie web: sito web e pagina web. Una pagina web è la più piccola unità logica del World Wide Web, ovvero un documento identificato in modo univoco da un URL univoco. Un sito web è una raccolta di pagine web tematicamente correlate situate sullo stesso server e di proprietà dello stesso proprietario. In un caso particolare, un sito web può essere rappresentato da una singola pagina web. Il World Wide Web è la raccolta di tutti i siti web.

La base dell'intero World Wide Web è il linguaggio di markup ipertestuale HTML - Hyper Text Markup Language (Fig. 3). Serve per il markup logico (semantico) di un documento (pagina web). A volte viene utilizzato in modo improprio per controllare il modo in cui il contenuto delle pagine Web viene visualizzato sullo schermo di un monitor o quando viene inviato a una stampante, il che è fondamentalmente contrario all'ideologia adottata dal World Wide Web.

Riso. 3. Tecnologie web

I fogli di stile a cascata (CSS) vengono utilizzati per controllare la visualizzazione del contenuto della pagina web. I CSS sono per molti versi simili agli stili utilizzati nel popolare elaboratore di testi Word.

I linguaggi di scripting vengono utilizzati per aggiungere dinamismo alle pagine web (menu a discesa, animazioni). Il linguaggio di scripting standard sul World Wide Web è JavaScript. Il nucleo del linguaggio JavaScript è ECMAScript.

HTML, CSS, JavaScript sono linguaggi con cui puoi creare siti web complessi come preferisci. Ma questo è solo supporto linguistico, mentre nei browser i documenti sono rappresentati come una raccolta di oggetti, i cui molti tipi costituiscono il modello a oggetti del browser (BOM). Il modello a oggetti del browser è unico per ciascun modello e quindi crea problemi durante la creazione di applicazioni cross-browser. Pertanto, il Consorzio Web ha proposto modello di oggetto document (DOM), che è un modo standard di rappresentare le pagine web utilizzando un insieme di oggetti.

Sintassi HTML moderno descritto utilizzando un linguaggio estensibile Marcatura XML– Linguaggio di markup estensibile. XML ti consentirà di creare i tuoi linguaggi di markup, simili all'HTML sotto forma di DTD. Esistono molti di questi linguaggi: per rappresentare formule matematiche e chimiche, conoscenza, ecc.

Come si può vedere da quanto sopra, tutte le tecnologie web sono strettamente correlate. Comprendere questo fatto renderà più semplice comprendere lo scopo di un particolare meccanismo utilizzato per creare applicazioni web.

E-MAIL

Posta elettronica (e-mail, e-mail, dall'inglese posta elettronica) - tecnologia e servizi che fornisce per l'invio e la ricezione di messaggi elettronici (chiamate “lettere” o “ e-mail") su un distribuito rete di computer. La principale differenza rispetto ad altri sistemi di trasmissione dei messaggi è la possibilità di consegna ritardata e un sistema sviluppato di interazione tra server di posta indipendenti.

La posta elettronica consente di inviare e ricevere messaggi, rispondere automaticamente alle lettere dei corrispondenti utilizzando i loro indirizzi, inviare copie di una lettera a più destinatari contemporaneamente, inoltrare una lettera ricevuta a un altro indirizzo, utilizzare nomi logici invece di indirizzi (numerici o nomi di dominio), creare diverse sottosezioni di una casella di posta per vari tipi di corrispondenza, includere file di testo in lettere, utilizzare il sistema “mail reflector” per condurre discussioni con un gruppo di corrispondenti, ecc. Per inviare un messaggio postale tramite posta elettronica, è necessario fornire un indirizzo di casella di posta. La casella di posta di un abbonato e-mail è un'area del disco rigido del server di posta riservata all'utente.

Lo sviluppo della tecnologia Internet ha portato alla nascita di moderni protocolli di messaggistica, che offrono maggiori opportunità per l'elaborazione delle lettere, una varietà di servizi e facilità d'uso. Per esempio, Protocollo SMTP, lavorando secondo il principio client-server, è progettato per inviare messaggi da un computer al destinatario. In genere, l'accesso a un server SMTP non è protetto da password, quindi puoi utilizzare qualsiasi server conosciuto sulla rete per inviare e-mail. A differenza dei server per l'invio di lettere, l'accesso ai server per l'archiviazione dei messaggi è protetto da password. Pertanto, è necessario utilizzare un server o un servizio in cui sia presente Account. Questi server funzionano utilizzando i protocolli POP e IMAP, che differiscono nel modo in cui archiviano i messaggi.

Secondo il protocollo POP3, i messaggi che arrivano ad un determinato indirizzo vengono archiviati sul server fino a quando non vengono scaricati sul computer durante la sessione successiva. Dopo aver scaricato i messaggi, puoi disconnetterti dalla rete e iniziare a leggere la posta. Pertanto, l'utilizzo della posta POP3 è il modo più veloce e conveniente da utilizzare.

Il protocollo IMAP è conveniente per coloro che utilizzano una connessione costante alla rete. Anche i messaggi ricevuti all'indirizzo vengono archiviati sul server, ma, a differenza di POP3, quando si controlla la posta, verranno scaricate prima solo le intestazioni dei messaggi. La lettera stessa può essere letta dopo aver selezionato il titolo del messaggio (verrà scaricata dal server). È chiaro che con una connessione remota, lavorare con la posta utilizzando questo protocollo comporta una perdita di tempo ingiustificata.

Esistono diversi protocolli per ricevere trasferimenti di posta tra sistemi multiutente.

Breve descrizione di alcuni di essi:

1) SMTP (Simple Mail Transfer Protocol)è un protocollo di rete progettato per la trasmissione di posta elettronica su reti TCP/IP e la trasmissione deve essere necessariamente avviata dal sistema di invio stesso.

MTA (Mail Transfer Agent) - agente di trasferimento della posta - è il componente principale del sistema di trasferimento della posta su Internet, che rappresenta questo computer di rete per un sistema di posta elettronica di rete. Normalmente gli utenti non lavorano con l'MTA, ma con il programma MUA (Mail User Agent), un client di posta elettronica. Il principio di interazione è mostrato schematicamente in figura.

2) POP, POP2, POP3 (protocollo postale)- tre protocolli abbastanza semplici e non intercambiabili progettati per consegnare la posta a un utente da un server di posta centrale, eliminarla da esso e identificare l'utente tramite nome/password. POP include SMTP, utilizzato per trasferire la posta proveniente dall'utente. I messaggi di posta possono essere ricevuti come intestazioni, senza ricevere l'intero messaggio.

Dopo aver stabilito una connessione, il protocollo POP3 attraversa tre stati successivi

      1. Autorizzazione Il client viene sottoposto ad una procedura di autenticazione
      2. Il client di transazione riceve informazioni sullo stato della casella di posta, accetta ed elimina la posta.
      3. Il server di aggiornamento elimina le e-mail selezionate e chiude la connessione.

3) IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 (protocollo di accesso ai messaggi Internet) - offre all'utente ricche opportunità per lavorare con le cassette postali situate su un server centrale

o IMAP archivia la posta sul server in directory di file e fornisce inoltre al client la possibilità di cercare stringhe nei messaggi di posta sul server stesso.

o IMAP2: utilizzato in rari casi.

o IMAP3 è una soluzione incompatibile e non viene utilizzata.

o IMAP2bis - L'estensione IMAP2, che consente ai server di comprendere la struttura MIME (Multiscope Internet Mail Extensions) di un messaggio, è ancora utilizzata.

o IMAP4: IMAP2bis rielaborato e ampliato, che può essere utilizzato ovunque.

o IMAP4rev1: estende IMAP con un ampio set di funzioni, comprese quelle utilizzate in DMSP (Distributed Mail System for Personal Computers).

4) ACAP (Application Configuration Access Protocol) è un protocollo progettato per funzionare con IMAP4; aggiunge la possibilità di cercare abbonamenti e iscriversi alle bacheche, cassette postali e viene utilizzato per effettuare ricerche nelle rubriche.

5) DMSP (o PCMAIL) è un protocollo di ricezione/invio di posta, la cui particolarità è che l'utente può avere più di una postazione di lavoro a suo disposizione. Stazione di lavoro contiene informazioni sullo stato della posta, la directory attraverso la quale avviene lo scambio, che, quando connessa al server, viene aggiornata stato attuale sul server di posta.

6) MIME è uno standard che definisce meccanismi per l'invio di vari tipi di informazioni tramite posta elettronica, inclusi testi in lingue diverse dall'inglese, che utilizzano codifiche di caratteri diverse da ASCII, nonché contenuti binari a 8 bit come immagini, musica, film e programmi.

Lavoro indipendente.

Segui l'esempio riportato nel testo (dispense) e salva in propria cartella sulla scrivania.

9.2. Lavorare con un insegnante:

Se sorgono difficoltà o azioni sbagliate contatta il tuo insegnante per correggere gli errori.

Entro la fine della lezione, mostra all'insegnante una relazione sul lavoro completato e ricevi credito per questo lavoro.

9.3. Controllo del livello di conoscenza iniziale e finale:

Prova su un computer .


Informazioni correlate.


Ecc. Prima di tutto, stiamo parlando, ovviamente, delle risorse di Internet e del World Wide Web. Gli URI forniscono un modo semplice ed estensibile per identificare le risorse. L’estensibilità degli URI significa che diversi schemi di identificazione esistono già all’interno degli URI e molti altri ne verranno creati in futuro.
Vedi maggiori dettagli."Struttura dell'URI" sotto.

Gli esempi più famosi di URI sono gli URN. Un URL è un URI che, oltre a identificare una risorsa, fornisce anche informazioni sulla posizione di tale risorsa. Un URN è un URI che identifica una risorsa in uno specifico namespace (e, quindi, in uno specifico contesto). Ad esempio, l'URN urn:ISBN:0-395-36341-1 è un URI che punta alla risorsa (libro) 0-395-36341-1 nello spazio dei nomi ISBN, ma a differenza di un URL, un URN non punta a la posizione di quella risorsa. Tuttavia, recentemente si è tendenza a parlare semplicemente di URI per qualsiasi stringa identificativa, senza ulteriori chiarimenti. Quindi forse i termini URL e URN diventeranno presto un ricordo del passato.

Storia

Una nuova versione dell'URI è stata definita nel 1998 nella RFC 2396, contemporaneamente alla parola universale nel titolo è stato sostituito da Uniforme. Nel dicembre 1999, RFC 2732 ha introdotto piccole modifiche alla specifica URI, garantendo la compatibilità con l'agosto 2002, RFC 3305 ha annunciato l'obsolescenza del termine URL e della precedenza dell'URI. La struttura e la sintassi attuali dell'URI sono regolate dalla RFC 3986, rilasciata nel gennaio 2005. Molti Tecnologie più recenti il web semantico (ad esempio RDF) si basa sullo standard URI. Il World Wide Web Consortium gioca ora un ruolo di primo piano nello sviluppo degli URI.

Screpolatura

L'URL è diventato un'innovazione fondamentale su Internet e i principi dell'URI sono stati documentati per garantire la piena compatibilità con gli URL. Da qui deriva il grande svantaggio degli URI, che derivano dall'eredità degli URL. In un URI, come in un URL, è possibile utilizzare solo un insieme limitato di caratteri latini e segni di punteggiatura (anche più piccoli che in cirillico, o geroglifici o, ad esempio, caratteri specifici della lingua francese), quindi dovremo codificare l'URI allo stesso modo degli URL di Wikipedia sono codificati con caratteri Unicode. Ad esempio, una stringa come:

http://ru.wikipedia.org/wiki/Microcredito

codificato nell'URL come:

http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0 %B8%D1%82

Poiché le lettere di tutti gli alfabeti tranne quello latino utilizzato in inglese sono soggette a tale trasformazione, gli URI con parole in altre lingue (anche europee) perdono la capacità di essere percepiti dalle persone. E questo è in palese contraddizione con il principio dell’internazionalismo, proclamato da tutte le principali organizzazioni di Internet, inclusi W3C e IRI (inglese. Identificatore internazionale delle risorse ) - identificatori di risorse internazionali in cui i caratteri Unicode potrebbero essere utilizzati senza problemi e che non violerebbero i diritti di altre lingue. Sebbene sia difficile dire in anticipo se gli identificatori saranno mai in grado di farlo. Questo formato cerca di creare identificatori completamente indipendenti dal contesto, ovvero indipendenti da protocollo, dominio, percorso, applicazione e piattaforma: sono assolutamente indipendente.

Inoltre, il creatore dell'URI, Tim Berners-Lee, ha affermato che il sistema dei nomi di dominio sottostante l'URL è una cattiva soluzione, poiché impone un'architettura gerarchica sulle risorse che non è adatta al web ipertestuale.

Struttura dell'URI

Analisi della struttura dell'URI

Per il cosiddetto “parsing” degli URI (inglese. analisi), ovvero per scomporre un URI nelle sue parti componenti e successivamente identificarle, è più conveniente utilizzare il sistema di espressioni regolari, che ora è disponibile in quasi tutti i linguaggi di programmazione moderni. Si consiglia di utilizzare il seguente modello per analizzare gli URI:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 12 3 4 5 6 7 8 9

Questo modello include 9 gruppi indicati dai numeri sopra (per ulteriori informazioni su modelli e gruppi, vedere Espressioni regolari), che analizzano in modo più completo e accurato la tipica struttura dell'URI, dove:

  • gruppo 2 - schema,
  • gruppo 4 - fonte,
  • gruppo 5 - percorso,
  • gruppo 7 - richiesta,
  • gruppo 9 - frammento.

Pertanto, se utilizzi questo modello per analizzare, ad esempio, un URI tipico:

Http://www.ics.uci.edu/pub/ietf/uri/#Related

quindi i 9 gruppi di pattern sopra riportati daranno rispettivamente i seguenti risultati:

  1. http:
  2. //www.ics.uci.edu
  3. www.ics.uci.edu
  4. /pub/ietf/uri/
  5. nessun risultato
  6. nessun risultato
  7. #Imparentato
  8. Imparentato

Differenza tra URI e URL

Un URI non sempre indica come ottenere una risorsa, a differenza di un URL, ma la identifica solo. Ciò consente di descrivere utilizzando RDF (Resource Description Framework) risorse che non possono essere ottenute tramite Internet (ad esempio una persona, un'auto, una città, ecc.).

Esempi di URI

URI assoluti

http://ru.wikipedia.org/wiki/URI ftp://ftp.is.co.za/rfc/rfc1808.txt file://C:\NomeUtente.NomeHost\Projects\Wikipedia_Articles\URI.xml ldap: ///c=GB?objectClass?one mailto: [e-mail protetta] sorso: [e-mail protetta] news:comp.infosystems.www.servers.unix data:text/plain;charset=iso-8859-7,%be%fg%be tel:+1-816-555-1212 telnet://192.0.2.16:80 / urna:oasi:nomi:specifica:docbook:dtd:xml:4.1.2

Collega URI

/relativo/URI/con/assoluto/percorso/della/risorsa.txt relativo/percorso/della/risorsa.txt ../../../resource.txt risorsa.txt /resource.txt#frag01 #frag01 [vuoto linea]

Guarda anche

Collegamenti

Appunti


Fondazione Wikimedia. 2010.

Scopri cos'è "Uri" in altri dizionari:

    Uri- può riferirsi a: Geografia: * Il Canton Uri è un cantone (regione) della Svizzera * Uri (India), una regione e una città del Kashmir * Uri (SS), una città della Sardegna, Italia * Úri, un villaggio di Pest contea, Ungheria * URI sumero, la terra di AgadeURI, tre... ... Wikipedia

    uri- URÎ, urăsc, vb. IV. 1. tranz. Avea un puternic sentiment de antipatie, de duşmănie împotriva cuiva sau a ceva; a nu putea suferi pe cineva sau ceva. 2.rif. impers. (Construit cu dativul) A se plictisi, a se sătura de ceva sau de cineva. ♢… …Dicționar Român

    uri- urì interj., urỹ NdŽ, Jn, Aln, ùri kartojant 1. nusakomas puolančio šuns(ar šunų) urzgimas: Tik urỹ urỹ ir apipuolo mane šunes K.Būg(Ds). Urì urì šunes kad pradeda loti Šmn. ║ Ds sakoma pjudant šuniu. 2. Vžns nusakomas triukšmingas… … Dizionario della lingua lituana

Lavorare con gli URI

Ogni giorno usiamo Identificatori di risorse uniformi (URI), quando cerchiamo qualcosa sul WWW. Gli URI sono necessari per identificare ed eseguire query il nuovo tipo risorsa. Utilizzando un URI è possibile accedere non solo alle pagine Web, ma anche a un server FTP, a un servizio Web e a file locali.

Il termine viene spesso utilizzato al posto di URI Localizzatore di risorse uniforme (URL). URI è un termine generale utilizzato per collegarsi alle risorse. Un URL è un URI associato a schemi URI popolari come http, ftp e mailto. Il termine URL non è più utilizzato nella documentazione tecnica.

Un altro termine che potresti già conoscere è Nome risorsa uniforme (URN). Un URN è un URI standardizzato utilizzato per identificare una risorsa indipendentemente dalla sua posizione sulla rete.

Analizziamo le parti dell'URI che collega ad una pagina del sito Global Knowledge:

http://www.globalknowledge.net:80/training/generic.asp?pageid=1078&country=DACH

    Viene chiamata la prima parte dell'URI schema. Uno schema definisce uno spazio dei nomi URI e può restringere la sintassi dell'espressione che segue lo schema. Molti schemi prendono il nome dai protocolli corrispondenti (come http, ftp) che utilizzano, ma ciò non è obbligatorio. Nel nostro esempio, l'identificatore dello schema è http. Limitatore di circuito(// in questo esempio) separa lo schema dal resto dell'URL.

    Il delimitatore dello schema è seguito dal nome del server o dall'indirizzo IP in notazione decimale con punti, ad esempio www.globalknowledge.net.

    Dopo il nome del server o l'indirizzo IP c'è un numero di porta che identifica la connessione a un'applicazione specifica sul server. Se non viene specificato un numero di porta, viene utilizzato il numero di porta predefinito per quel protocollo (ad esempio, porta 80 per HTTP).

    Sentiero specifica la pagina (e la directory) della risorsa richiesta. Non rappresenta necessariamente un file fisico sul server, ma può essere creato dinamicamente. In questo caso, il percorso è simile a /training/generic.asp.

    Dal percorso per simbolo? l'ultima parte di questo URI è separata, chiamata domanda. Nel nostro esempio, la richiesta è definita dalla riga pageid=1078&country=DACH. Una stringa di query può essere costituita da diversi componenti, ognuno dei quali specifica una variabile e un valore, uniti dal carattere &. È possibile combinare più componenti della query utilizzando il carattere &. Pertanto, nel nostro esempio, il primo componente è pageid=1078 con la variabile pageid e il valore 1078 e il secondo componente è country=DACH.

    Le sezioni all'interno di una risorsa possono essere identificate come frammenti. Frammenti vengono utilizzati per collegare sezioni all'interno di una pagina HTML. Nello sviluppo di pagine Web, i frammenti sono anche chiamati segnalibri. Il carattere # separa l'identificatore del frammento dal percorso. Nell'URL http;//www.microsoft.com/net/basics/glossary.asp#NETFramework il frammento è la stringa #NETFramework.

Se alla stringa di query viene aggiunto il carattere #, non si tratta più di un frammento. Un URL può contenere una stringa di query o un frammento, ma non entrambi.

L'uso di più caratteri è riservato in un URI: non possono apparire nei nomi host o nei percorsi perché sono caratteri delimitatori speciali. Nell'URI sono riservati i seguenti caratteri:

; / ? : @ & = + $ ,

Classe Uri dallo spazio dei nomi System incapsula l'URI. Contiene proprietà e metodi per analizzare, confrontare e combinare gli URI.

Puoi creare un oggetto Uri passando la stringa URI al costruttore:

Uri baseURI = new Uri("http://sito");

Se esiste già un oggetto URI di base, puoi creare un nuovo URI combinando l'URI di base con un URI relativo:

Uri baseURI = new Uri("http://sito"); Uri nuovoURI = nuovo Uri(baseURI, "mio/csharp/web/level2/2_2.php");

Se l'URI di base contiene già un percorso, viene ignorato. Il nuovo URI si basa solo sullo schema, sulla porta e sul nome del server.

La classe Uri ha diversi campi statici di sola lettura che consentono di ottenere alcuni schemi comuni:

Uri.UriSchemeFile

Lo schema dei file viene utilizzato per accedere ai file localmente o su risorse di rete condivise, che possono essere denominate secondo la convenzione scopo universale nomi ( Convenzione di denominazione universale, UNC).

Uri.UriSchemeFtp

Il protocollo FTP con lo schema ftp viene utilizzato per ricevere file da un server ftp e, al contrario, per posizionare file su un server ftp.

Uri.UriSchemeGopher

Il protocollo gopher è stato il predecessore di HTTP. Forniva la possibilità di visualizzare gerarchicamente le informazioni di testo sul contenuto, in cui era superiore a FTP. Ma venne presto sostituito dal protocollo HTTP.

Uri.UriSchemeHttp, Uri.UriSchemeHttps

Questi due schemi sono ben noti: http e https. Lo schema https viene utilizzato per lo scambio sicuro.

Uri.UriSchemeMailto

Lo schema mailto viene utilizzato per inviare messaggi di posta.

Uri.UriSchemeNews, Uri.UriSchemeNntp

Gli schemi news e nntp vengono utilizzati nei newsgroup che utilizzano il protocollo NNTP.

La classe Uri dispone di metodi statici per verificare se lo schema e il nome host sono corretti: Uri.CheckSchemeName() restituisce true se il nome dello schema è corretto e il metodo UriCheckHostName() non solo controlla il nome host, ma restituisce anche un valore di enumerazione UriHostNameType che indica il tipo di host.

La classe Uri ha tantissime proprietà di sola lettura che ti consentono di accedere a tutte le parti dell'URI. La tabella seguente utilizza l'URI riportato sopra come esempio per dimostrare l'uso delle proprietà:

AbsoluteUri Questa proprietà mostra l'URI completo. Se numero specificato protocol port è uguale al numero di porta predefinito, il costruttore Uri lo rimuove automaticamente. Nel nostro esempio, il valore della proprietà AbsoluteUri è simile al seguente: http://www.globalknowledge.net/t Raining/generic.asp?pageid=1078&country=DACH. Se un nome file viene passato al costruttore della classe Uri, la proprietà AbsoluteUri precede automaticamente il nome file con lo schema file://.
schema Lo schema è la prima parte dell'URI e in questo caso questa proprietà restituisce il valore http.
Ospite La proprietà Host mostra il nome host dall'URI: www.globalknowledge.net
Autorità Se il numero di porta è uguale al numero utilizzato dal protocollo predefinito, la proprietà Authority mostra la stessa stringa della proprietà Host. Se viene utilizzato un numero di porta diverso, anche la proprietà Authority mostra il numero di porta.
TipoNomeHost Il tipo di nome host dipende dal nome utilizzato. In questo caso si ottiene lo stesso valore dell'enumerazione UriHostNameType discusso in precedenza.
Porta Utilizzando la proprietà Port, si ottiene il numero di porta - 80.
AbsolutePath Percorso assoluto inizia dopo il numero di porta nell'URI e termina prima della stringa di query. In questo caso è /training/generic.asp.
LocalPath Il percorso locale fornisce il valore /training/generic.asp. Come puoi vedere, per una richiesta HTTP non c'è differenza tra AbsolutePath e LocalPath. La differenza si verifica se l'URI si riferisce a una risorsa di rete condivisa. Per un URI nel formato file:\\server\share\directory\file.txt, la proprietà LocalPath restituisce solo i nomi di directory e file e la proprietà AbsolutePath include i nomi di server e condivisione.
Domanda La proprietà Query mostra la riga che segue il percorso: ?pageid=1078&country=DACH.
PathAndQuery La proprietà PathAndQuery fornisce la combinazione di percorso e stringa di query: /training/generic.asp?pageid=1078&country=DACH.
Frammento Se il percorso è seguito da un frammento, viene restituito nella proprietà Fragment. Il percorso può essere seguito solo da una stringa o da un frammento di query. Il frammento è identificato dal simbolo #
Segmenti La proprietà Segments restituisce un array di stringhe formato dal percorso. In questo caso abbiamo tre segmenti: /, training/ e generic.asp.
Informazioni utente Il nome utente impostato nell'URI può essere letto dalla proprietà UserInfo. Il passaggio dei nomi utente è comune in Protocollo FTP e se viene specificato un utente non anonimo, ad esempio ftp:// [e-mail protetta], la proprietà UserInfo restituirà myuser.

Oltre a quelle elencate, esistono diverse altre proprietà che restituiscono valori booleani se l'URI rappresenta un file, percorso UNC, indirizzo feedback o se per questo protocollo viene utilizzato il numero di porta predefinito. Queste proprietà sono rispettivamente IsFile, IsUnc, IsLoopback e IsDefaultPort.

Per accedere a qualsiasi risorsa di rete, è necessario sapere dove si trovano e come accedervi. Il World Wide Web utilizza uno schema di indirizzamento e identificazione standardizzato che tiene conto dell'esperienza di indirizzamento e identificazione di posta elettronica, Gopher, WAIS, telnet, ftp, ecc. - URL, Localizzatore di risorse uniformi.

URI(Identificatore uniforme della risorsa, Identificazione universale risorsa) (RFC 2396, agosto 1998) - una stringa compatta di caratteri per identificare una risorsa astratta o fisica. Per risorsa si intende qualsiasi oggetto appartenente a un determinato spazio. Include e sovrascrive gli URL precedentemente definiti (RFC 1738/RFC 1808) e gli URN (RFC 2141, RFC 2611).

Un URI ha lo scopo di identificare in modo univoco qualsiasi risorsa.

Alcuni sottoinsiemi di URI:

URNA Nome risorsa uniforme: uno schema URI "urna:" privato con un sottoinsieme di "spazio dei nomi" che deve essere univoco e immutabile anche se la risorsa non esiste più o è inaccessibile.

Si presuppone che, ad esempio, il browser sappia dove cercare questa risorsa.

Sintassi:

urn:namespace: data1.data2,more-data, dove namespace determina come vengono utilizzati i dati dopo il secondo ":".

Esempio di URNA:

urna:ISBN: 0-395-36341-6

ISBN - classificatore di soggetti per case editrici

0-395-36341-6 - numero specifico argomento di un libro o di una rivista



Quando riceve l'URN, il programma client accede all'ISBN (la directory "classificatore di argomenti per case editrici" su Internet). E riceve una decodifica del numero del soggetto “0-395-36341-6” (ad esempio: “chimica quantistica”).

L'URN è ampiamente utilizzato nelle reti P2P (come edonkey).

Un esempio di URN che punta a un'immagine disco di Adobe Photoshop v8.0 sulla rete edonkey:

urna:ed2k://|file|AdobePhotoshopv8.0.iso|940769280|b34c101c90b6dedb4071094cb1b9f2d3|/

ed2k - punta alla rete

Adobe Photoshop v8.0.iso - nome del file

940769280 - dimensione in byte

- identificatore del file (calcolato utilizzando una funzione hash)

URL del localizzatore di risorse uniforme:

URL(Uniform Resource Locator, RFC 1738) - un localizzatore unificato (indice) di risorse, un modo standardizzato per registrare l'indirizzo di una risorsa sul WWW e su Internet. Un URL ha una struttura flessibile ed estensibile per indicare la posizione delle risorse sul web nel modo più naturale, identificando una risorsa in base al modo in cui vi si accede (ad esempio, la sua "posizione web") piuttosto che identificandola tramite il nome o altri attributi di quella risorsa.

URL di esempio:

http://www.ipm.kstu.ru/index.php

ftp://www.ipm.kstu.ru/

Per rappresentare un indirizzo viene utilizzato un set limitato di caratteri ASCII.

L'aspetto generale dell'indirizzo può essere rappresentato come segue:

<схема>://<логин>:<пароль>@<хост>:<порт>/<полный-путь-к-ресурсу >

schema di accesso alle risorse: http, ftp, gopher, mailto, news, telnet, file, man, info, whatis, ldap, wais, ecc.

Password per il login- nome utente e password utilizzati per accedere alla risorsa

ospite il nome di dominio o l'indirizzo IP dell'host.

Porta- porta host per la connessione

percorso completo della risorsa - chiarire le informazioni sulla posizione della risorsa (a seconda del protocollo).

URL di esempio:

http://example.com #query pagina iniziale predefinita

http://www.example.com/site/map.html #richiesta data pagina nella directory specificata

http://example.com:81/script.php #connect to porta non standard

http://example.org/script.php?key=value #request con parametri passati allo script

ftp://utente: [e-mail protetta]#connettiti ad un server ftp con autorizzazione

http://192.168.0.1/example/www #connessione tramite indirizzo di rete

file:///srv/www/htdocs/index.html #apri il file locale

gopher://example.com/1 #connettiti al server gopher

URL: gli Uniform Resource Locator descrivono esplicitamente come raggiungere l'oggetto.

L'avvento degli URL ha rappresentato un'innovazione significativa su Internet. Tuttavia, dal momento della sua invenzione fino ad oggi, lo standard URL presenta un grave inconveniente: può utilizzare solo un insieme limitato di caratteri, addirittura più piccoli di quelli ASCII: lettere latine, numeri e solo alcuni segni di punteggiatura.

Se vogliamo utilizzare caratteri cirillici, geroglifici o, ad esempio, caratteri francesi specifici nell'URL, i caratteri di cui abbiamo bisogno devono essere ricodificati in modo speciale.

Nella Wikipedia in lingua russa se ne vedono esempi ogni giorno Codifica dell'URL, poiché la lingua russa utilizza i caratteri cirillici. Ad esempio, una riga come:

http://ru.wikipedia.org/wiki/Microcredito

codificato nell'URL come:

http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0 %B8%D1%82

Questa conversione avviene in due fasi: prima ogni carattere cirillico viene codificato in Unicode (UTF-8) in una sequenza di due byte, quindi ogni byte di questa sequenza viene scritto in notazione esadecimale:

M → D0 e 9C → %D0%9C

e → D0 e B8 → %D0%B8

a → D0 e BA → %D0%BA

p → D1 e 80 → %D1%80, ecc.

Secondo la specifica dell'URL, ciascuno di questi codici byte esadecimali è preceduto da un segno di percentuale (%): da qui deriva il termine inglese "percent-encoding", che denota il modo in cui i caratteri sono codificati negli URL e negli URI.

Poiché le lettere di tutti gli alfabeti tranne l'alfabeto latino di base sono soggette a questa trasformazione, un URL con parole nella stragrande maggioranza delle lingue (eccetto inglese, italiano, latino) potrebbe diventare illeggibile per gli esseri umani.

Tutto ciò contraddice il principio dell’internazionalismo proclamato da tutte le principali organizzazioni Internet, inclusi W3C e ISOC. A questo problema mira a risolvere lo standard IRI (International Resource Identifier): identificatori di risorse internazionali in cui i caratteri Unicode potrebbero essere utilizzati senza problemi e che quindi non violerebbero i diritti di altre lingue.

Altri schemi URL

Schema HTTP.

Lo schema indica l'identificatore, l'indirizzo della macchina, la porta TCP, il percorso nella directory del server, le variabili e i relativi valori e l'etichetta.

Sintassi:

http://[ [:@][:][?]]

http - nome dello schema

utente - nome utente

host: nome dell'host

porta - numero della porta

interrogazione(<имя-поля>=<значение>{&<имя-поля>=<значение>) - stringa della domanda

Definito in RFC 2068. Per impostazione predefinita, porta=80.

Esempi:
http://ipm.kstu.ru/internet/index.php

Questo è il tipo più comune di URI utilizzato nei documenti WWW. Dopo il nome dello schema (http) c'è un percorso costituito dall'indirizzo del dominio della macchina e dall'indirizzo completo del documento HTML nell'albero serverHTTP.

È anche possibile utilizzare un indirizzo IP come indirizzo macchina:

http://195.208.44.20/internet/index.php

Se il server del protocollo HTTP è in esecuzione su qualcosa di diverso da 80 porta TCP, allora questo si riflette nell'indirizzo:

http://195.208.44.20:8080/internet/index.php

http://195.208.44.20/internet/index.php#metka1
Il carattere "#" separa il nome del documento dal nome dell'etichetta.

Le variabili e i loro valori vengono passati come segue:
http://ipm.kstu.ru/internet/index.php?var1=value1&vard2=value2

I valori "var1" e "var2" sono i nomi delle variabili e "valore1" e "valore2" sono i loro valori.

Schema FTP

Questo schema consente di indirizzare archivi di file FTP.

Sintassi:

ftp://[ [:@][:]

ftp - nome dello schema

utente - nome utente

password - password dell'utente

host: nome dell'host

porta - numero della porta

percorso-url: percorso del file e del file stesso

Definito in RFC 1738. Per impostazione predefinita, porta=21, utente=anonimo, password=indirizzo e-mail, se il nome è specificato ma la password no, viene richiesta nella finestra di dialogo.

ha la forma:

//...//[;tipo= ], Dove :

Esempi: ftp://ipm.kstu.ru/students/name/

Per specificare nome utente e password, è necessario scriverlo in questo modo:
ftp://nome:password@ftp://ipm.kstu.ru/students/nome/

In questo caso questi parametri sono separati dall'indirizzo della macchina dal simbolo “@” e tra loro da due punti.

Schema MAILTO

Questo schema è progettato per l'invio di posta.

Sintassi:

mailto:[ {,,...}][?]

mailto - nome dello schema

e-mail-1 ( @) - primo indirizzo email

utente - nome utente

host: nome dell'host

e-mail-2 - secondo indirizzo email

interrogazione(<имя-поля-заголовка>=<значение>{&<имя-поля-заголовка>=<значение>) - stringa della domanda

posta: [e-mail protetta]

Questo schema trasferisce i campi e i loro valori:

posta: [e-mail protetta]?subject=Email_subject&body=Testo_che_verrà_inserito_nella_email

L'indirizzo del destinatario può anche essere scritto come valore del campo a:

posta: [e-mail protetta]?subject=Email_subject&body=Testo_che_verrà_inserito_nella_email

Cos'è l'HTTP?

Il primo documento (ma non uno standard) è RFC1945 (Hypertext Transfer Protocol -- HTTP/1.0 T. Berners-Lee, R. Fielding, H. Frystyk maggio 1996)

Ultima versione - RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee giugno 1999)

Hypertext Transfer Protocol è un protocollo di trasferimento ipertestuale, un protocollo di alto livello (vale a dire, il livello dell'applicazione). Utilizzato dal servizio WWW per trasmettere pagine Web.

HTTP (HyperText Transfer Protocol, RFC 2616, versione attuale HTTP/1.1) - protocollo di trasferimento ipertestuale. Questo protocollo era originariamente destinato allo scambio di documenti ipertestuali, ma ora le sue capacità sono state notevolmente ampliate (in particolare sono state aggiunte funzioni per supportare lo streaming).

HTTP è un tipico protocollo client-server; i messaggi vengono scambiati secondo lo schema richiesta-risposta sotto forma di comandi ASCII. Una caratteristica del protocollo HTTP è la possibilità di specificare nella richiesta e nella risposta il metodo con cui rappresentare la stessa risorsa vari parametri: formato, codifica, lingua, ecc. È grazie alla possibilità di specificare come viene codificato un messaggio che il client e il server possono scambiarsi dati binari, sebbene questo protocollo sia basato su testo.

HTTP è un protocollo a livello di applicazione, ma viene utilizzato anche come “trasporto” per altri protocolli applicativi, come SOAP, XML-RPC, WebDAV.

Il protocollo HTTP definisce un metodo di interazione richiesta-risposta tra un programma client e un programma server al suo interno mondo della tecnologia Ampia rete.

Per caricare una pagina web nel browser client, invia una richiesta corrispondente a un programma speciale installato sul computer server, chiamato server http, ed elabora i dati da esso ricevuti. In questo caso, la funzione del browser è richiedere al server pagina specifica, riceverlo e visualizzarlo sullo schermo dell'utente. Il server accetta la richiesta, cerca il documento richiesto e fornisce al client il contenuto del file trovato o un messaggio di errore se tale file non è stato trovato o l'accesso ad esso è negato per qualche motivo. Un punto importante per comprendere questo processo è che il server http non analizza il contenuto del documento trasmesso. In parole povere, al server http non interessa cosa c'è all'interno del file richiesto, lo trasferisce solo al browser e il browser si assume tutto il lavoro di strutturazione e visualizzazione delle informazioni ricevute.

La ricerca della pagina richiesta viene effettuata in una directory specifica, che è allocata sul computer server di questo sito: un collegamento a questa directory è presente nell'indirizzo inserito dall'utente. Nel caso in cui si acceda non a un documento specifico, ma al sito nel suo insieme, il server http sostituisce automaticamente il nome del file trasferito con la cosiddetta "pagina iniziale", denominata index.htm o indice .html (in alcuni casi - default. htm o default.html). Questo documento deve trovarsi nella directory principale riservata all'hosting del tuo sito o, se specificatamente indicato, in una directory chiamata WWW. Tutti gli altri file possono essere inseriti nella stessa directory o in sottodirectory, il che a volte è conveniente, soprattutto quando il sito contiene diverse sezioni o intestazioni tematiche.

Oltre alle sottocartelle che crei, nelle quali sei libero di inserire quasi tutti i contenuti di cui hai bisogno, la directory del server di solito contiene molte altre directory che dovrebbero essere menzionate separatamente. Innanzitutto, questa è la cartella CGI-BIN, dove si trovano gli script CGI e altri script eseguiti dal tuo sito applicazioni interattive, oltre a diverse directory di servizi necessarie per operazione normale server. SU stato iniziale semplicemente non dovresti prestare loro attenzione. A volte nella stessa directory in cui è archiviato index.html ce ne sono diversi file aggiuntivi: not_found.html - un documento che viene visualizzato se il server http non riesce a trovare il file richiesto dall'utente, vietato.html - visualizzato come messaggio di errore se l'accesso al documento richiesto viene negato e, infine, robots.txt - un file, in cui in modo speciale descrive le regole per l'indicizzazione del tuo sito da parte dei motori di ricerca.

Nella maggior parte dei casi, e soprattutto quando si pubblica una home page su server che forniscono hosting gratuito, agli utenti viene negato l'accesso alle directory del servizio e alla cartella CGI-BIN ed è anche impossibile modificare il contenuto dei file not_found e vietato.html. Questo è un aspetto da considerare se prevedi di includere nella tua risorsa qualsiasi contenuto interattivo che richieda, come minimo, la possibilità di inserire file in una delle cartelle di servizio. In alcuni casi, potrebbe essere vietato creare sottodirectory sul server, nel qual caso l'utente dovrà accontentarsi di una sola directory allocata per le proprie esigenze.

Da tutto ciò che è stato detto, diventa chiaro che il browser del client può solo ricevere ed elaborare informazioni dal server, e inserirle e modificarle solo se il caricamento dei file sul server è implementato in base al protocollo HTTP utilizzando speciali script CGI inclusi nel file interfaccia web del server. In tutti gli altri casi è necessario utilizzare il cosiddetto server ftp sul quale è possibile effettuare il trasferimento file necessari, caricandoli automaticamente nella directory designata per il tuo sito. In entrambi i casi, per accedere al sistema sarà necessario conoscere il nome utente e la password. Va anche ricordato che la maggior parte programmi server(in particolare, Apache per piattaforme compatibili con UNIX) distinguono tra caratteri minuscoli e maiuscoli, quindi tutti i nomi di file e le loro estensioni dovrebbero essere scritti per evitare errori lettere minuscole, e sempre in latino. Quest'ultimo è dovuto alle differenze nell'elaborazione delle codifiche della lingua russa, caratteristiche di alcuni server.

Il protocollo HTTP funziona nel modo seguente: il programma client stabilisce una connessione TCP con il server (numero di porta standard 80) e gli invia una richiesta HTTP. Il server elabora questa richiesta e invia una risposta HTTP al client.

L'interazione tra il client e il server Web avviene tramite lo scambio di messaggi. I messaggi HTTP sono suddivisi in richieste del client al server e risposte del server al client.

I messaggi di richiesta e di risposta hanno un formato comune. Entrambi i tipi di messaggi si presentano così: prima c'è una riga iniziale, poi forse uno o più campi di intestazione, detti anche intestazioni, quindi una riga vuota (cioè una riga composta dai caratteri CR e LF), che indica la fine dei campi dell'intestazione e poi eventualmente del corpo del messaggio:

linea di partenza

campo intestazione 1

campo dell'intestazione 2

campo intestazione N

corpo del messaggio

Intestazioni del protocollo HTTP

I formati della linea di partenza del client e del server sono diversi e verranno discussi di seguito. Esistono quattro tipi di titoli:

Intestazioni generali, che possono essere presenti sia nella richiesta che nella risposta;

Intestazioni della richiesta, che possono essere presenti solo nella richiesta;

Intestazioni di risposta, che possono essere presenti solo nella risposta;

Intestazioni di entità, che si riferiscono al corpo del messaggio e ne descrivono il contenuto.

Ogni intestazione è composta da un titolo, due punti ":" e un valore. Le voci più importanti sono riportate nella Tabella 1.

Tabella 1

Intestazioni del protocollo HTTP

Intestazione Scopo
Intestazioni degli oggetti
Permettere Elenca i metodi supportati dal server
Codifica dei contenuti Il modo in cui è codificato il corpo del messaggio, ad esempio per ridurne le dimensioni
Lunghezza del contenuto Lunghezza del messaggio in byte
Tipo di contenuto Contiene la designazione del tipo di contenuto MIME della risposta. A seconda del valore Content-Type, il browser interpreta la risposta come una pagina HTML, un'immagine gif o jpeg, un file da salvare su disco o qualcos'altro e intraprende l'azione appropriata. Alcuni tipi di contenuto: text/html - testo in entrata Formato HTML(pagina web); text/plain - testo semplice (simile al Blocco note); image/jpeg - immagine in formato JPEG; image/gif - lo stesso, in formato GIF; Può anche trasmettere la codifica per i dati di testo. Ad esempio: charset=windows-1251 charset=koi8-rus Content-Length - lunghezza del contenuto della risposta in byte (dimensione del file). Ultima modifica: data e ora dell'ultima modifica del documento.
ETag Un tag di risorsa univoco sul server che consente di confrontare le risorse
Scade La data e l'ora in cui la risorsa sul server verrà modificata e dovrà essere nuovamente recuperata
Ultima modifica Data e ora dell'ultima modifica del contenuto
Intestazioni di risposta
Età Numero di secondi dopo i quali è necessario ripetere la richiesta per ottenere nuovi contenuti
Posizione L'URI della risorsa a cui accedere per ottenere il contenuto
Riprova dopo Data e ora o numero di secondi dopo i quali è necessario ripetere la richiesta per ricevere una risposta positiva
server Nome del software server che ha inviato la risposta
Richiedi intestazioni
Accettare Un elenco di tipi di contenuto supportati dal browser in ordine di preferenza del browser, ad esempio: Accetta: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application /vnd.ms-powerpoint, */* Ciò è ovviamente necessario nel caso in cui il server possa generare lo stesso documento in formati diversi. Il valore di questo parametro viene utilizzato principalmente dagli script CGI per generare una risposta su misura per un determinato browser.
Accetta set di caratteri Codifiche di caratteri in cui il client può accettare contenuto di testo
Accetta-codifica Il modo in cui il server può codificare il messaggio
Ospite Host e numero di porta da cui viene richiesto il documento
Se-Modificato-Since Se-Corrisponde Se-Nessuno-Corrisponde If-Intervallo Se-Non modificato-Since Richiedi intestazioni per l'accesso condizionato alle risorse
Allineare Richiedere parte di un documento
Agente utente Nome del software client - il valore è il "codice" del browser, ad esempio: Mozilla/4.0 (compatibile; MSIE 5.0; Windows 95; DigExt)
Titoli generali
Connessione Connessione - può assumere i valori Keep-Alive e chiudere. Keep-Alive significa che dopo l'emissione di questo documento, la connessione al server non viene interrotta e possono essere emesse più richieste. La maggior parte dei browser funziona in modalità Keep-Alive, poiché consente di "scaricare" una pagina HTML e le relative immagini in un'unica connessione al server. Una volta impostata, la modalità Keep-Alive viene mantenuta fino al primo errore o fino alla successiva connessione: richiesta di chiusura esplicitamente specificata. close ("chiudi"): la connessione viene chiusa dopo aver risposto a questa richiesta.
Data Data e ora in cui è stato generato il messaggio
Pragma Comandi speciali, dipendenti dall'implementazione, riguardanti il ​​contenuto da trasferire
Codifica di trasferimento Metodo di codifica di un messaggio durante la trasmissione

In alcune intestazioni, il valore è la data e l'ora. Devono essere presentati nel formato descritto nella RFC 1123, ad esempio:

Il corpo del messaggio contiene le informazioni effettive trasmesse: il carico utile del messaggio. Il corpo del messaggio è una sequenza di ottetti (byte). Il corpo del messaggio può essere codificato, con il metodo di codifica specificato nell'intestazione dell'oggetto Content-Encoding.

Un messaggio di richiesta da un client a un server è costituito da una riga di richiesta, intestazioni (generale, richieste, oggetto) ed eventualmente un corpo del messaggio.

La riga di richiesta inizia con il metodo, seguito dall'identificatore della risorsa richiesta, dalla versione del protocollo e dai caratteri finali di fine riga:

<Метод> <Идентификатор> <Версия HTTP>

Metodo specifica il metodo da applicare alla risorsa richiesta. Ad esempio, il metodo GET indica che il client desidera recuperare il contenuto della risorsa. L'identificatore identifica la risorsa richiesta. La versione HTTP è indicata da una riga come questa:

HTTP/<версия>.<подверсия>

Metodi del protocollo HTTP

Diamo un'occhiata ai metodi principali del protocollo HTTP.

Il metodo OPTIONS richiede informazioni sulle opzioni di connessione (ad esempio, metodi, tipi di documenti, codifiche) che il server supporta per la risorsa richiesta. Questo metodo consente a un client di specificare opzioni e/o requisiti associati a una risorsa o funzionalità del server senza eseguire alcuna azione sulla risorsa o provocarne il caricamento.

Se la risposta del server non è un messaggio di errore, le intestazioni dell'oggetto contengono informazioni che possono essere considerate opzioni di connessione. Ad esempio, l'intestazione Consenti elenca tutti i metodi supportati dal server per una determinata risorsa.

Se l'identificatore della risorsa richiesta è un asterisco (“*”), la richiesta OPTIONS è destinata a rivolgersi al server nel suo insieme.

Se l'ID della risorsa richiesta non è un asterisco, la richiesta OPTIONS si applica alle opzioni disponibili durante la connessione alla risorsa specificata.

Il metodo GET consente di ottenere qualsiasi informazione relativa alla risorsa richiesta. Nella maggior parte dei casi, se l'identificatore della risorsa richiesta punta a un documento (ad esempio, un documento di testo, un'immagine, un video), il server restituisce il contenuto di quel documento (contenuto del file). Se la risorsa richiesta è un'applicazione (programma) che genera dati, i dati generati vengono restituiti nel corpo del messaggio di risposta, anziché in un'immagine binaria del file eseguibile. Viene utilizzato, ad esempio, durante la creazione di applicazioni CGI. Se l'identificatore della risorsa richiesta punta a una directory (directory, cartella), a seconda delle impostazioni del server, il contenuto della directory (elenco dei file) o il contenuto di uno dei file che si trovano in questa directory (di solito index.html o Default.htm). IN quest'ultimo caso Il nome della cartella può essere specificato con o senza "/" alla fine. Se questo carattere non è presente alla fine dell'identificatore, il server emette una delle risposte con reindirizzamento (con codici di stato 301 o 302).

Viene fatta una distinzione tra "GET condizionale" in cui il messaggio di richiesta include intestazioni di richiesta If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match o If-Range. Il metodo GET condizionale richiede il trasferimento di un oggetto solo se soddisfa le condizioni descritte nelle intestazioni fornite. Il metodo GET condizionale è progettato per ridurre download non necessario rete, poiché consente di evitare di ricaricare i dati già salvati dal client.

Si distingue anche tra "GET parziale", in cui il messaggio di richiesta contiene un'intestazione di richiesta Range. Un GET parziale richiede che venga trasferita solo una parte di un oggetto. Il metodo GET parziale è progettato per ridurre il sovraccarico di rete non necessario richiedendo solo una parte di un oggetto quando un'altra parte è già stata scaricata dal client. Il valore dell'intestazione Range è l'intervallo di byte da recuperare. I byte sono numerati a partire da 0. I byte iniziali e finali dell'intervallo sono separati da un carattere "–". Se è necessario ottenere più intervalli, questi vengono elencati separati da virgole.

Il metodo HEAD è identico a GET, tranne per il fatto che il server non restituisce il corpo del messaggio nella risposta. Le metainformazioni contenute nelle intestazioni HTTP di una risposta a una richiesta HEAD sono identiche alle informazioni fornite in risposta a una richiesta GET. Questo metodo può essere utilizzato per ottenere informazioni su un oggetto di richiesta senza passare direttamente il corpo dell'oggetto. Il metodo HEAD viene spesso utilizzato per testare i collegamenti ipertestuali.

Il metodo POST viene utilizzato per una richiesta in cui il server indirizzato accetta i dati contenuti nel corpo del messaggio di richiesta (oggetto) e li invia per l'elaborazione all'applicazione specificata come risorsa richiesta. POST è progettato per implementare un metodo comune seguenti funzioni:

Estratto delle risorse esistenti;

Pubblicare un messaggio in un sistema di bacheca elettronica (BBS), newsgroup, mailing list o gruppi simili di articoli;

Trasferimento di un blocco di dati, ad esempio il risultato di un input in un modulo, al processo di elaborazione;

Esecuzione di query su database (DB);

Infatti la funzione svolta dal metodo POST è determinata dall'applicazione a cui punta l'ID della risorsa richiesta. Insieme al metodo GET, il metodo POST viene utilizzato durante la creazione di applicazioni CGI. Il browser può inviare richieste con il metodo POST durante l'invio di moduli. Per fare ciò, l'elemento FORM del documento HTML contenente il modulo deve avere un attributo METHOD con il valore POST.

Un'azione eseguita dal metodo POST può eseguire un'azione sul server e non restituire alcun contenuto come risultato dell'operazione. In questo caso, a seconda che la risposta includa o meno un corpo del messaggio che descrive il risultato, il codice di stato nella risposta può essere 200 (OK) o 204 (Nessun contenuto).

Se la risorsa sul server è stata creata, la risposta contiene un codice di stato 201 (Creato) e include un'intestazione di risposta Posizione.

Il corpo del messaggio, che viene trasmesso in una richiesta con il metodo PUT, viene archiviato sul server e l'identificatore della risorsa richiesta sarà l'identificatore del documento salvato. Se l'identificatore della risorsa richiesta punta a una risorsa già esistente, l'oggetto incluso nel corpo del messaggio viene trattato come una versione modificata della risorsa ubicata sul server. Se è stata creata una nuova risorsa, il server avvisa l'agente utente rispondendo con il codice di stato 201 (Creato).

Differenza fondamentale tra i metodi POST e PUT è significato diverso ID della risorsa richiesta. L'URI nella richiesta POST identifica la risorsa che elabora l'oggetto incluso nel corpo del messaggio. Questa risorsa potrebbe essere l'applicazione che riceve i dati. Al contrario, l'URI in una richiesta PUT identifica l'entità inclusa nella richiesta come il corpo del messaggio, ovvero l'agente utente assegna l'URI dato alla risorsa inclusa.

Il metodo DELETE richiede al server di eliminare una risorsa che ha l'ID richiesto. Una richiesta con questo metodo può essere rifiutata dal server se l'utente non dispone dei diritti per eliminare la risorsa richiesta.

Il metodo TRACE viene utilizzato per restituire la richiesta trasmessa a livello di protocollo HTTP. Il destinatario della richiesta (il server Web) invia nuovamente il messaggio ricevuto al client come corpo di un oggetto di risposta con un codice di stato pari a 200 (OK). La richiesta TRACE non deve contenere il corpo del messaggio.

TRACE consente al client di vedere cosa sta ricevendo il server dall'altra parte e di utilizzare questi dati per test o diagnostica.

Se la richiesta ha esito positivo, la risposta contiene l'intero messaggio di richiesta nel corpo del messaggio di risposta e l'intestazione dell'oggetto Content-Type è "message/http".

Codici di risposta

Dopo aver ricevuto e interpretato il messaggio di richiesta, il server risponde con un messaggio di risposta HTTP.

La prima riga della risposta è la Status-Line. È costituito dalla versione del protocollo, da un codice di stato numerico, da una frase esplicativa, separata da spazi e dai caratteri finali di fine riga:

<Версия HTTP> <Код состояния> <Поясняющая фраза>

La versione del protocollo ha lo stesso significato della richiesta.

L'elemento Status-Code è un codice intero a tre cifre (tre cifre) per il risultato della comprensione e della soddisfazione della richiesta. La frase motivo è una breve descrizione testuale del codice di stato. Il codice di stato è destinato ad essere elaborato dal software e la frase esplicativa è destinata agli utenti.

La prima cifra del codice di stato determina la classe della risposta. Le ultime due cifre non hanno un ruolo specifico nella classificazione. Ci sono 5 significati per la prima cifra:

1xx: Codici informativi: richiesta ricevuta, l'elaborazione continua.

2xx: Codici di successo- l'azione è stata ricevuta, compresa ed elaborata con successo.

3xx: Codici di reindirizzamento: è necessario eseguire ulteriori azioni per completare la richiesta.

4xx: Codici di errore del client: la richiesta contiene un errore di sintassi o non può essere completata.

5xx: Codici di errore del server: il server non è in grado di completare una richiesta valida.

La frase motivo per ciascun codice di stato è elencata nella RFC 2068 ed è consigliata, ma può essere sostituita con altre equivalenti senza influire sul protocollo. Ad esempio, nelle versioni localizzate in lingua russa dei server HTTP, queste frasi vengono sostituite con quelle russe. La tabella 2 mostra i codici di risposta del server HTTP.

Tavolo 2

Codici di risposta del server HTTP

Codice Frase esplicativa secondo RFC 2068 Frase esplicativa equivalente in russo
1xx: Codici informativi
Continua Continua
2xx: codici riusciti
OK OK
Creato Creato
Nessun contenuto Nessun contenuto
Reimposta contenuto Reimposta contenuto
Contenuto parziale Contenuto parziale
3xx: codici di reindirizzamento
trasferito temporaneamente Spostato temporaneamente
Non modificato Non modificato
4xx: codici di errore del client
Brutta richiesta Brutta richiesta
Non autorizzato Non autorizzato
Non trovato Non trovato
operazione non permessa Operazione non permessa
Richiedi timeout Tempo scaduto per la richiesta
Conflitto Conflitto
Lunghezza richiesta Lunghezza richiesta
Richiesta entità troppo grande L'oggetto della richiesta è troppo grande
5xx: codici di errore del server
Interno Errore del server Errore interno server
Non implementato Non implementato
Servizio non disponibile Il servizio non è disponibile
Versione HTTP non supportata Versione HTTP non supportata

La riga di stato è seguita dalle intestazioni (generale, risposta e oggetto) ed eventualmente dal corpo del messaggio.

Una delle funzioni più importanti server webè quello di fornire l'accesso a una parte del locale file system. Per fare ciò, nelle impostazioni del server viene specificata una determinata directory, che è la directory principale di questo server. Pubblicare un documento, cioè realizzarlo accessibile agli utenti, che ha “visitato” questo server (collegato ad esso tramite il protocollo HTTP), devi copiare questo documento root directory Server Web o una delle sue sottodirectory. Quando ci si connette tramite HTTP, sul server viene creato un processo con diritti utente, che, di regola, non esiste realmente, ma viene creato appositamente per visualizzare le risorse del server. Configurando i diritti e le autorizzazioni di un determinato utente, è possibile controllare l'accesso alle risorse Web.

Consideriamo esempio più semplice Richiesta HTTP. Se digitiamo l'indirizzo http://yandex.ru nella finestra degli indirizzi del browser, il browser determinerà l'indirizzo IP del server yandex.ru e gli invierà la seguente richiesta HTTP sulla porta 80:

OTTIENI http://yandex.ru/HTTP/1.0

Accetta: immagine/gif, immagine/x-xbitmap, immagine/jpeg, immagine/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Accetta-Lingua: it

Biscotto: yandexuid=2464977781018373381

Agente utente: Mozilla/4.0 (compatibile; MSIE 5.5; Windows 98)
Ospite: yandex.ru

Referente: narod.ru

Connessione proxy: Keep-Alive

La richiesta viene trasmessa in formato testo non crittografato. La parte più importante della richiesta si trova nella prima riga: questo è il tipo di richiesta (GET), l'indirizzo URL del documento richiesto (http://yandex.ru) e la versione Protocollo HTTP(HTTP/1.0). Di seguito i parametri della richiesta. Ogni riga corrisponde ad un parametro. La riga inizia con il nome del parametro, seguito da due punti e dal valore del parametro.

Accetta: il tipo di dati che il browser può accettare (nella codifica MIME).

Accept-Language: la lingua preferita in cui il browser desidera accettare i dati. User-Agent: tipo di programma che ha inviato la richiesta.

Host – Nome DNS (o IP) dell'host a cui è indirizzata la richiesta.

Cookie - cookie (dati salvati dal server su disco locale client, quando hai visitato questo host l'ultima volta).

Referer: l'host dalla cui pagina inviamo la richiesta. Quindi, ad esempio, se siamo sulla pagina http://narod.ru e facciamo clic sul collegamento http://yandex.ru lì, la richiesta verrà inviata all'host yandex.ru e il campo della richiesta del referer conterrà il nome host narod.ru.

L'insieme dei parametri di richiesta non è fisso. Oltre a quelli elencati possono essere presenti altri parametri.

I parametri più interessanti sono referer e cookie. Questi parametri vengono utilizzati principalmente per identificare l'utente sul server.

Una richiesta GET può contenere dati inviati dal client al server. Vengono trasmessi direttamente tramite un URL utilizzando il protocollo CGI. I dati sono separati dall'URL da un "?" e collegati da “&”:

OTTENERE ?<параметр 1>=<значение 1>&<параметр 2>=<значение 2>&…

Questo tipo di trasferimento dei dati al server è conveniente, ma presenta limitazioni sul volume. Quantità eccessive di dati non possono essere trasferite tramite URL. Per tali scopi esiste un altro tipo di richiesta: una richiesta POST. Una richiesta POST è molto simile a una GET, con l'unica differenza che i dati in una richiesta POST vengono inviati separatamente dall'intestazione della richiesta stessa:

Il corpo della richiesta deve essere separato dall'intestazione da una riga vuota. Se il server incontra una riga vuota in una richiesta POST, considera tutto ciò che segue come il corpo della richiesta (dati trasmessi). Tieni presente quanto segue: il formato dei dati nel corpo della richiesta POST è arbitrario. Sebbene CGI sia il formato più comunemente utilizzato, non è obbligatorio. Inoltre, una richiesta POST non richiede un corpo della richiesta e può anche trasmettere dati tramite un URL.

Oltre al formato CGI, a volte per trasferire grandi quantità di informazioni (ad esempio file) viene utilizzato il cosiddetto formato CGI. formato multiparte (il formato dei dati trasmessi è determinato dal parametro Content-Type):

I browser moderni includono strumenti che consentono agli sviluppatori web di ottenere alcune informazioni sulle richieste di post inviate. Se devi solo guardare le intestazioni di un paio di richieste, utilizzarle sarà più semplice e veloce rispetto ad altri metodi.

Se usi Firefox, puoi utilizzare la sua console web. Visualizza le intestazioni della richiesta e il contenuto della trasmissione biscotti. Per avviarlo, aprire il menu del browser, fare clic su “Sviluppo Web” e selezionare “Console Web”. Nel pannello che appare, attiva il pulsante “Rete”. Inserisci il nome del metodo – post – nel campo filtro. A seconda dei tuoi obiettivi, clicca sul pulsante del modulo che invia la richiesta desiderata oppure aggiorna la pagina. La richiesta inviata verrà visualizzata nella console. Fare clic su di esso per visualizzare maggiori dettagli.

Browser di Google Chrome dispone di potenti strumenti di debug. Per utilizzarli, fai clic sull'icona della chiave inglese, quindi espandi la voce "Personalizza e gestisci Google Chrome". Seleziona Strumenti e avvia Strumenti per sviluppatori. Nella barra degli strumenti, seleziona la scheda Rete e invia la tua richiesta. Trova la richiesta desiderata nell'elenco e cliccaci sopra per studiarne i dettagli.

Il browser Opera dispone di strumenti di sviluppo integrati per Opera Dragonfly. Per avviarli, fare clic con il tasto destro sulla pagina desiderata e selezionare menù contestuale"Ispeziona elemento." Vai alla scheda Rete degli Strumenti per sviluppatori e invia la tua richiesta. Trovalo nell'elenco ed espandilo per esaminare le intestazioni e le risposte del server.

Internet Explorer 9 contiene un kit chiamato F12 Developer Tools che fornisce informazioni dettagliate secondo le richieste completate. Si avviano premendo il pulsante F12 o utilizzando il menu "Servizio", che contiene la voce con lo stesso nome. Per visualizzare la richiesta accedere alla scheda “Rete”. Trova una determinata query nel riepilogo e fai doppio clic per espandere i dettagli.

I browser Chrome e Internet Explorer 9 contengono strumenti integrati che consentono di esaminare in dettaglio la richiesta di posta inviata. Per informazioni complete, utilizzali o Firefox con il plug-in Firebug installato. È molto comodo per esaminare frequentemente le query, ad esempio durante il debug dei siti Web.

Se desideri esaminare una richiesta inviata da un programma diverso dal browser, utilizza il debugger HTTP Fiddler. Funziona come un server proxy e intercetta le richieste di qualsiasi programma e fornisce anche informazioni molto dettagliate sulle loro intestazioni e contenuti.

I migliori articoli sull'argomento