Come configurare smartphone e PC. Portale informativo
  • casa
  • Recensioni
  • Identificatore uniforme della risorsa (URI), suo scopo e componenti. Schema operativo del server WWW

Identificatore uniforme della risorsa (URI), suo scopo e componenti. Schema operativo del server WWW

L'URI (Uniform Resource Identifier) ​​è una stringa compatta di caratteri per identificare una risorsa astratta o fisica. Per risorsa si intende qualsiasi oggetto appartenente a un determinato spazio. La necessità di un URI era chiara agli sviluppatori WWW dal momento in cui il sistema è stato avviato, perché... si prevedeva di combinare in un unico ambiente informativo gli strumenti utilizzati vari modi identificazione delle risorse informative. È stata sviluppata una specifica che includeva chiamate a FTP, Gopher, WAIS, Usenet, E-mail, Prospero, Telnet, X.500 e, ovviamente, HTTP (WWW). Di conseguenza, è stata sviluppata una specifica universale che consente di espandere l'elenco delle risorse indirizzabili a causa dell'emergere di nuovi schemi.

Il luogo in cui vengono utilizzati gli URI sono i collegamenti ipertestuali scritti nei tag E . Anche la grafica incorporata viene indirizzata dalla specifica URI nei tag E . L'implementazione di un URI per il WWW è chiamata URL (Uniform Resource Locator). Più precisamente, un URL è un'implementazione dello schema URI mappato su un algoritmo per accedere alle risorse tramite protocolli di rete. Esiste anche un URN (Uniform Resource Name), che mappa un URI su uno spazio dei nomi sulla rete.

L'emergere degli URN nasce dal desiderio di indirizzare le parti MIME di un messaggio di posta. Principi di costruzione di un indirizzo WWW. L'URI si basava sui seguenti principi:

· Estensibilità – I nuovi schemi di indirizzi dovrebbero adattarsi facilmente alla sintassi dell'URI esistente.

· Completezza: quando possibile, qualsiasi schema esistente dovrebbe essere descritto da un URI.

· Leggibilità - l'indirizzo deve essere facilmente leggibile dall'utente, cosa generalmente tipica della tecnologia WWW - i documenti insieme ai collegamenti possono essere sviluppati in un normale editor di testo.

Prima di considerare vari schemi Ecco un esempio di un URI semplice:

http://polyn.net.kiae.su/polyn/index.html

Prima dei due punti c'è l'identificatore dello schema di indirizzi: "http". Questo nome è separato da due punti dal resto dell'URI, chiamato "percorso". IN in questo caso il percorso è costituito dall'indirizzo del dominio della macchina su cui è installato il server HTTP e dal percorso dalla radice dell'albero del server al file “index.html”. Oltre al record URI completo presentato sopra, ne esiste uno semplificato. Si presuppone che al momento del suo utilizzo molti parametri dell'indirizzo della risorsa siano già stati determinati (protocollo, indirizzo della macchina sulla rete, alcuni elementi del percorso). Con tali presupposti, l'autore delle pagine ipertestuali può solo indicare l'indirizzo relativo della risorsa, vale a dire indirizzo relativo a specifiche risorse sottostanti.

L'URL (Uniform Resource Locator) è un sottoinsieme di schemi URI che identifica una risorsa in base alla modalità di accesso (ad esempio, la sua "posizione sul Web") anziché in base al nome o ad altri attributi di tale risorsa. L'URL descrive esplicitamente come raggiungere l'oggetto.

Sintassi: :, Dove:

schema = "http" | "ftp" | "gopher" | "mailto" | "notizie" | "Telnet" | "file" | "uomo" | "informazioni" | "cos'è" | "ldap" | "era" | ...– nome dello schema

parte specifica dello schema– dipende dallo schema. Nella parte specifica dello schema che puoi utilizzare valori esadecimali nel formato: %5f. Gli ottetti non stampabili devono essere codificati: 00–1F, 7F, 80–FF.

URL di esempio:

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

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

URN (Uniform Resource Name) è uno schema URI privato "urn:" con un sottoinsieme di "namespace" che deve essere univoco e invariato anche se la risorsa non esiste più o è inaccessibile.

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

Sintassi: urna: spazio dei nomi: data1.data2,more–data, dove lo spazio dei nomi determina come vengono utilizzati i dati specificati dopo il secondo ":".

Esempio di URNA:

urna: ISBN: 0–395–36341–6

L'ISBN è un classificatore tematico per le case editrici,

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

Al ricevimento dell'URN programma cliente si riferisce 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 è un'adozione relativamente recente, le versioni attuali di HTML non sono incluse e i servizi di directory non sono ancora sviluppati, quindi l'URN non è ampiamente utilizzato come l'URL.

Schemi di indirizzamento delle risorse Internet

Esistono 3 schemi per indirizzare le risorse Internet. 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.

Schema HTTP. Questo è lo schema di base del WWW. Lo schema specifica l'identificatore, l'indirizzo della macchina, la porta TCP, il percorso nella directory del server, il criterio di ricerca e l'etichetta.

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

http– nome dello schema

utente- Nome utente

parola d'ordine- password utente

ospite- Nome host

porta- numero di porta

percorso-URL– percorso del file e del file stesso

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

Per impostazione predefinita, porta=80.

Ecco alcuni esempi di URI per lo schema HTTP:

http://polyn.net.kiae.su/polyn/manifest.html

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://144.206.160.40/risk/risk.html

Se il server del protocollo HTTP è in esecuzione su una porta TCP diversa da 80, ciò si riflette nell'indirizzo:

http://144.206.130.137:8080/altai/index.html

http://polyn.net.kiae.su/altai/volume4.html#first

Schema FTP. Questo schema consente di indirizzare archivi di file FTP da programmi client del World Wide Web. In questo caso il programma deve supportare il protocollo FTP. In questo schema è possibile specificare non solo il nome dello schema, l'indirizzo dell'archivio FTP, ma anche l'ID utente e persino la sua password.

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

ftp– nome dello schema

utente- Nome utente

parola d'ordine- password utente

ospite- Nome host

porta- numero di porta

percorso-URL– percorso del file e del file stesso

Per impostazione predefinita, porta=21, utente=anonimo, password=indirizzo email.

Questo schema viene spesso utilizzato per accedere agli archivi FTP pubblici:

ftp://polyn.net.kiae.su/pub/0index.txt

In questo caso viene registrato un collegamento all'archivio “polyn.net.kiae.su” con l'identificatore “anonymous” o “ftp” (accesso anonimo). Se è necessario specificare l'ID utente e la password, è possibile farlo prima dell'indirizzo della macchina:

ftp://nessuno: [e-mail protetta]/utenti/locale/pub

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

Schema TELNET. Questo schema fornisce l'accesso alla risorsa in modalità terminale remoto. In genere il client richiama un programma aggiuntivo per operare tramite il protocollo telnet. Quando si utilizza questo schema, è necessario specificare un ID utente, ma è consentita una password.

Sintassi: telnet://[ [:@][:]/

telnet– nome dello schema

utente- Nome utente

parola d'ordine- password utente

ospite- Nome host

porta- numero di porta

Per impostazione predefinita, porta=23.

Esempio: telnet://nome: [e-mail protetta]

In realtà l'accesso è a risorse pubbliche e l'identificatore e la password sono pubblicamente noti, ad esempio si possono trovare nei database Hytelnet.

telnet://ospite: [e-mail protetta]

Dagli esempi sopra riportati, è chiaro che la specifica degli indirizzi delle risorse URI è abbastanza generale e consente di identificarne quasi tutti Risorsa Internet. Allo stesso tempo, il numero delle risorse può aumentare grazie alla creazione di nuovi schemi.

Servizio WWW

Il servizio WWW (World Wide Web) è progettato per lo scambio di informazioni ipertestuali, costruito secondo lo schema “client-server”. Navigatore ( Internet Explorer, Opera ...) è un client multiprotocollo e un interprete HTML. E come un tipico interprete, il client esegue varie funzioni a seconda dei comandi (tag). Queste funzioni includono non solo il posizionamento del testo sullo schermo, ma lo scambio di informazioni con il server durante l'analisi del testo HTML ricevuto, cosa che avviene più chiaramente quando si visualizzano immagini grafiche incorporate nel testo.

Il server HTTP (Apache, IIS...) elabora le richieste del client per ricevere un file. Inizialmente il servizio WWW si basava su tre standard:

· HTML (HyperText Markup Language) – linguaggio di markup ipertestuale per documenti;

· URL (Universal Resource Locator) – un modo universale per indirizzare le risorse sulla rete;

· HTTP (HyperText Transfer Protocol) – protocollo per lo scambio di informazioni ipertestuali.

Schema operativo del server WWW

Un server WWW è una parte di una rete globale o intraaziendale che consente agli utenti della rete di accedere ai documenti ipertestuali situati su questo server. Per interagire con il server WWW, l'utente della rete deve utilizzare un software specializzato - un browser (dal browser inglese) - un programma di visualizzazione.

Diamo uno sguardo più da vicino a come funziona il server WWW:

1. L'utente della rete avvia un browser le cui funzioni includono:

· stabilire una connessione con il server;

· ottenimento del documento richiesto;

· visualizzazione del documento ricevuto;

· rispondere alle azioni dell'utente – accesso a un nuovo documento. Dopo l'avvio, il browser, su comando dell'utente o automaticamente, stabilisce una connessione con il server WWW specificato e gli invia una richiesta per ricevere il documento specificato.

2. Il server WWW cerca il documento richiesto e restituisce i risultati al browser.

3. Il browser, ricevuto il documento, lo mostra all'utente e attende la sua reazione. Opzioni possibili:

· inserimento dell'indirizzo di un nuovo documento;

· stampa, ricerca e altre operazioni sul documento corrente;

· attivazione (click) di zone speciali del documento ricevuto, denominate link e associate all'indirizzo del nuovo documento. Nel primo e nel terzo caso si verifica una richiesta per un nuovo documento.

E il referente Google Play.

La piattaforma Android è caratterizzata da un livello estremamente elevato di frammentazione, poiché Google costringe gli sviluppatori di dispositivi a trasferire in modo indipendente il sistema operativo, a fornire retrocompatibilità e supporta molti dispositivi. Di conseguenza, vengono spesso utilizzate istruzioni if-else lunghe per garantire che venga utilizzato il metodo migliore nel contesto appropriato.

La situazione è esattamente la stessa con i collegamenti diretti in Android. Nel corso del tempo è emersa un’ampia varietà di requisiti tecnici che devono essere soddisfatti a seconda delle circostanze e del contesto dell’utente. La soluzione Branch riunisce tutte queste implementazioni, è un framework di collegamento che funziona in tutti i casi limite. I collegamenti alle filiali ti consentono di aggirare la complessità e utilizzare una soluzione standard in modo da non doverti preoccupare della compatibilità. Consigliamo vivamente di utilizzare le nostre soluzioni anziché provare a ricreare funzionalità simili da zero, poiché le forniamo gratuitamente.

Questa serie di post descrive tutti i diversi meccanismi di deep linking che utilizziamo e spiega come vengono implementati.

Puoi iniziare a lavorare sul sito start.branch.io oppure clicca sul pulsante qui sotto.

Schema URI Android e filtro intent

Android 1.0 ha introdotto un meccanismo di collegamento profondo basato sullo schema URI. Con il suo aiuto, uno sviluppatore può registrare la sua applicazione con un URI (Uniform Resource Identifier) ​​in sistema operativo Per dispositivo specifico dopo aver installato l'applicazione. È possibile utilizzare qualsiasi URI stringa di testo senza caratteri speciali, come HTTP, pinterest, fb o myapp. Dopo la registrazione, se aggiungi "://" alla fine dell'URI (ad esempio pinterest://) e fai clic su questo collegamento, si aprirà Applicazione Pinterest. Se non hai installato l'app Pinterest, vedrai l'errore "Pagina non trovata".

Requisiti per l'utilizzo degli schemi URI in Android

  • Registra un'azione per rispondere all'URI utilizzando un filtro di intenti nel manifest.
  • L'applicazione deve essere installata per essere utilizzata. Se l'applicazione non è installata, verrà visualizzato un messaggio di errore.

Configurazione di uno schema URI in Android

Configurare la tua applicazione per uno schema URI è molto semplice. Innanzitutto, devi selezionare un'azione nell'applicazione che desideri venga eseguita dall'applicazione quando lo schema URI è incluso e registrare un filtro di intent per essa. Aggiungi il seguente codice al tag nel manifest corrispondente all'azione da aprire.

Puoi modificare your_uri_scheme nello schema URI desiderato. Lo schema dovrebbe idealmente essere unico. Se corrisponde allo schema URI di un'altra applicazione, quando fa clic sul collegamento l'utente vedrà una finestra di selezione Android. Vedrai spesso questa finestra se hai più browser web installati sul tuo dispositivo, poiché sono tutti registrati per l'URI HTTP.

Gestione dei collegamenti diretti in un'applicazione Android

Sarà quindi necessario analizzare la stringa per leggere i valori allegati dallo schema URI.

Utilizzo pratico degli schemi URI in Android

Il metodo URI per la gestione dei collegamenti diretti presenta limitazioni significative. Non consigliamo di utilizzarlo senza modifiche significative, perché se il dispositivo non dispone dell'applicazione, visualizzerà semplicemente un messaggio di errore. Per utilizzo efficace Sarà necessario aggiungere schemi URI strumenti aggiuntivi per gestire casi limite, ad esempio quando l'applicazione non è installata.

Pertanto, per fornire un'esperienza utente ragionevole quando l'applicazione non è installata, è necessario racchiudere lo schema URI nel codice JavaScript lato client che può essere eseguito nel browser. Questo codice JS sarà ospitato sul tuo server e invierai il collegamento agli utenti. Di seguito è riportato un esempio.

Il codice tenterà di aprire l'app impostando l'iFrame di origine sullo schema URI e quindi tornerà in sicurezza all'app store di Google Play se l'app non viene caricata.

Conclusione

Seguire ulteriori pubblicazioni, dedicato ai collegamenti diretti in Android.

I collegamenti diretti in Android sono molto complessi; i casi limite compaiono ad ogni passaggio. Potrebbe sembrarti che tutto funzioni alla grande, finché all'improvviso qualche utente si lamenta di non poter aprire collegamenti da Facebook in Android 4.4.4. Ecco perché vale la pena utilizzare programmi come Branch: puoi semplicemente dimenticare tutte queste difficoltà come un brutto sogno e abituarti al fatto che i collegamenti funzionano sempre.

Articoli correlati

Collegamenti diretti, collegamenti universali, schemi URI/URL e collegamenti alle applicazioni - per l'anno scorso Tutti questi meccanismi hanno cambiato in modo significativo il modo in cui i contenuti vengono comunicati nelle applicazioni mobili. Molti sviluppatori di applicazioni non hanno le idee chiare...

Ogni giorno noi di Branch lavoriamo per portare il processo di utilizzo dei link a piattaforme mobili alla perfezione. I nostri collegamenti forniscono accesso a cose come: reindirizzamenti intelligenti, visualizzazione all'utente...

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(Uniform Resource Identifier) ​​​​(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 dell'argomento del libro o della 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.

Forma generale gli indirizzi possono essere rappresentati 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 V 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/esempio/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 sono soggette a questa trasformazione, tranne latino di base, allora 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 del server HTTP.

È 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 una porta TCP diversa da 80, ciò 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 gli 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 (Protocollo di trasferimento ipertesto -- HTTP/1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee giugno 1999)

Hypertext Transfer Protocol - protocollo di trasferimento ipertestuale, protocollo alto livello(vale a dire, a livello di 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 di rappresentazione della stessa risorsa in base a vari parametri: formato, codifica, lingua, ecc. È grazie alla possibilità di specificare il metodo di codifica di un messaggio che il client e il server possono scambiare dati binari, sebbene questo protocollo sia 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 è quella di richiedere una determinata pagina al server, riceverla e visualizzarla 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. Nella fase iniziale, semplicemente non dovresti prestare attenzione a loro. 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 , che descrive nello specifico 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, devi utilizzare il cosiddetto server ftp, sul quale puoi trasferire i file necessari utilizzando un apposito software, caricandoli automaticamente nella directory assegnata al tuo sito. In entrambi i casi, per accedere al sistema sarà necessario conoscere il nome utente e la password. Va inoltre ricordato che la maggior parte dei programmi server (in particolare Apache per piattaforme compatibili con UNIX) distinguono tra minuscolo e caso capitale caratteri, quindi tutti i nomi dei file e le loro estensioni dovrebbero essere scritti in lettere minuscole, e sempre in lettere latine, per evitare errori. 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 divisi 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 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 ottenere 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 produrre lo stesso documento in formati diversi. Il valore di questo parametro viene utilizzato principalmente dagli script CGI per generare una risposta adattata a 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 di una 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 complesso.

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'ID della risorsa richiesta punta a un documento (ad esempio, Documento di testo, immagine grafica, video), il server restituisce il contenuto di questo 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 il carattere "/" 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 ha lo scopo di ridurre il carico di rete non necessario, poiché consente di evitare di ricaricare i dati già salvati dal client.

Si distingue anche tra "GET parziale" e "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 di risposta HTTP 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, a un 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. A questo scopo l'elemento FORM Documento HTML contenente il modulo deve avere un attributo METHOD con 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 versione modificata risorsa situata sul server. Se è stata creata una nuova risorsa, il server avvisa l'agente utente rispondendo con il codice di stato 201 (Creato).

La differenza fondamentale tra i metodi POST e PUT è il diverso valore dell'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 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 riusciti: 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
Errore interno del server Errore interno del 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.

Uno di funzioni essenziali 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. Per pubblicare un documento, cioè per renderlo disponibile agli utenti che hanno “visitato” questo server (collegati ad esso tramite HTTP), è necessario copiare questo documento su 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. Impostazione di diritti e autorizzazioni dato utenteè possibile controllare l'accesso alle risorse Web.

Consideriamo l'esempio più semplice di una 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 inviata non crittografata forma di testo. Più parte principale La richiesta si trova nella prima riga: questo è il tipo di richiesta (GET), l'indirizzo URL del documento richiesto (http://yandex.ru) e la versione del 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 sul disco locale del cliente durante l'ultima visita a questo host).

Referer: l'host dalla cui pagina inviamo la richiesta. Quindi, ad esempio, se siamo sulla pagina http://narod.ru e lì facciamo clic sul collegamento http://yandex.ru, 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.

Richiesta OTTIENI 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):

Browser moderni contengono strumenti per gli sviluppatori web per 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 utilizzi 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, fai clic sul pulsante di invio del modulo richiesta richiesta oppure aggiorna la pagina La richiesta inviata verrà visualizzata nella console. Fare clic su di esso per visualizzare maggiori dettagli.

Il browser Google Chrome ha strumenti potenti debug Per utilizzarli, fai clic sull'icona della chiave inglese, quindi espandi la sezione "Impostazioni e Gestione Google Cromo". 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.

IN Browser dell'Opera ci sono strumenti integrati per gli sviluppatori di 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.

Browser Chrome e Internet Explorer 9 contengono strumenti integrati che consentono di esaminare in dettaglio la richiesta di posta inviata. Per informazioni complete utilizzarli o Firefox con plug-in installato Firebug. È 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.

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. Per esempio, URNA urna: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 alla posizione di quella risorsa: in esso non è detto in quale negozio puoi acquistarlo o su quale sito web puoi scaricarlo.

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 dell'URI è stata definita nel 1998 nella RFC 2396, momento in cui la 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 è progettato per 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 è una cattiva soluzione, poiché impone un'architettura gerarchica sulle risorse che non è adatta 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)

Consente di identificare indirettamente una risorsa secondaria facendo riferimento alla risorsa primaria e indicando 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), 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. 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.

Quindi, se si utilizza di questo modello analizzare, ad esempio, questo tipico URI:

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 lo sono i nomi nella rubrica del tuo telefono 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 e vengono acquistati in aggiunta.

Riso. 2. Gerarchia nel sistema DNS.

Anche gli indirizzi indicati sulle buste al momento della consegna delle lettere sono unici. tramite posta ordinaria. 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, in Ultimamente vengono sempre più utilizzati in qualsiasi modo e spesso non mantengono lo scopo previsto.

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. Il dominio di secondo livello è composto da i 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 meglio letti e ricordati dalle persone e vengono anche percepiti 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 nel 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 nel 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 nei popolari elaboratore di testi Parola.

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. Quindi il Web Consortium ha proposto il Document Object Model (DOM), che è un modo standard di rappresentare le pagine Web utilizzando un insieme di oggetti.

La sintassi dell'HTML moderno è descritta utilizzando l'Extensible Markup Language (XML). 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 anziché indirizzi (numerici o nomi a dominio), creare diverse sottosezioni di una casella di posta per vari tipi di corrispondenza, includere lettere file di testo, 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 server email, riservato all'utente.

Lo sviluppo della tecnologia Internet ha portato alla nascita di moderni protocolli di messaggistica che forniscono grandi 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. Di solito accesso a 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 un determinato computer di rete per un sistema di posta elettronica di rete. In genere, gli utenti non lavorano con MTA, ma con MUA (Mail Agente utente) - 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 file 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 e iscriversi a bacheche, caselle di posta e viene utilizzato per cercare 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. La workstation contiene informazioni sullo stato della posta, la directory attraverso la quale avviene lo scambio che, quando connessa al server, viene aggiornata allo stato corrente 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 incontri difficoltà o commetti errori, 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.


Lavorare con gli URI

Ogni giorno usiamo Identificatori di risorse uniformi (URI), quando cerchiamo qualcosa sul WWW. Gli URI sono necessari per identificare e richiedere un nuovo tipo di 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. L'URL è l'URI associato a tale popolare Schemi URI 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 terminatore dello schema è seguito dal nome del server o dall'indirizzo IP in notazione decimale puntata, ad esempio www.globalknowledge.net.

    Dopo il nome del server o l'indirizzo IP c'è un numero di porta che identifica la connessione a 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

Per accedere ai file localmente o su condivisioni di rete viene utilizzato uno schema di file, che può essere denominato in base alla convenzione di denominazione universale ( 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 il numero di porta specificato per un protocollo è 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 Un 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 si può vedere, per 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 FTP e se viene specificato un utente non anonimo, come 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.

I migliori articoli sull'argomento