L’informatica
è la scienza della rappresentazione dell’organizzazione e del trattamento
(automatico) dell’informazione.
Approccio sistematico
disciplinato da:
-Soluzione
(automatica) dei problemi
-Elaborazione
(automatica) dell’informazione.
Problema
|
Deve essere
disponibile una precisa formalizzazione (per esempio la matematica). Bisogna poter
dedurre una strategia di soluzione basata sulla applicazione sistematica di
regole operative ben precise, a partire da i dati resi disponibili
dall’utente. |
Algoritmo
|
-Procedimento
risolutivo di un problema. Insieme di regole
che, eseguite ordinatamente, permettono di ottenere risultati di
problemi a partire dai dati messi a disposizione dall’utente (o dal
programmatore) Un insieme di regole
è un’algoritmo quando (proprietà): -Non ambiguità: Le istruzioni devono
essere univocamente interpretabili dall’esecutore dell’algoritmo. -Eseguibilità: L’esecutore deve
essere in grado, con le risorse messe a disposizione, di eseguire ogni
istruzione, ed in un tempo finito. -Finitezza: L’esecuzione
dell’algoritmo deve avere luogo in un tempo finito dipendente da ogni insieme
di volori di ingresso. Poi distinguiamo
ancora: -Problemi
decidibili -Problemi non
decidibili e avremo inoltre
problemi di: -efficicienza
temporale -efficienza spaziale Esistono dei problemi che anche se decidibili, definendo un algoritmo risolutivo, portano ad un costo temporale e spaziale insostenibile nella pratica. Quindi l’esecutore
automatico (elaboratore) fa uso di adeguati linguaggi che hanno la
particolarità di avere regole comprensibili sia per l’elaboratore che per noi
stessi (programmatori). |
Programma
|
E’ essenzialmente
una sequenza di istruzioni Anche qui c’è un problema di efficienza. Infatti dobbiamo cercare di far effettuare al programma il numero minore di operazioni (per esempio moltiplicando 17*3 invece di 3*17. Tipi di istruzione: -Input/output -Assegnazioni -Operazione aritmetiche e logiche -Controllo: a)Sequenza (Composizione)ðIstruzioni
in sequenza b)Selezione (Alternativa)ðIF condizione P THEN istruzione A ELSE istruzione B c)Iterazione (Ciclo o Ripetizione)ðWHILE condizione P istruzione A Ciascuna di queste strutture di controllo gode della proprietà fondamentale di avere un flusso con una sola entrata ed uno con una sola uscitaà possiamo anche concatenarle tra loro ed annidarle in vari livelli. Qualsiasi programma può essere costruito utilizzando esclusivamente questi tre tipi di strutture di controllo. Questo è il teorema di Bohm-Iacobini |
Processo
|
Processo di una
esecuzione di un programma è una sequenza di azioni (che sono l’esecuzioni
delle istruzioni di un programma) Essenzialmente fa
passare l’elaboratore da uno stato
iniziale ad uno stato finale. |
INPUT- dati di ingresso:
rappresentazioni, fornite all’elaboratore, dei dati messi a disposizione dello
stesso.
PROGRAMMA-
rappresentazione dell’algoritmo nel linguaggio di programmazione scelto. A sua
volta il programma è formato da ISTRUZIONI)
OUTPUT- dati di
uscita: le rappresentazioni fornite dall’elaboratore al termine del programma,
come soluzione ahli input precedentemente immessi.
Elaboratore
1-L’elaboratore non è altro che un
esecutore di operazioni in sequenza che trasformano input in output.
2-Funziona secondo
regole precise e ben determinate e conosce un numero molto limitato di comandi.
3-Esegue ciascuno di
questi compandi in modo univoco e in un tempo finito.
4-Esegue operazioni
elementari su dati astratti, eseguendo istruzioni.
Dal
punto di vista logico: simbolo che identifica la
rappresentazione di un oggetto di interesse
Variabile:
Dal
punto di vista fisico: può essere intesa come un contenitore
per valori di un oggetto di interesse
In
entrambe i casi comunque la variabile sarà di tipo fissato.
Alle
variabili quindi assegno valori costanti oppure i valori di un’altra variabile
per mezzo dell’uguaglianza.
Il
valore iniziale delle variabili è 0 (z=0)
Per
verificare la correttezza del processo si può inserire una ulteriore relazione
di validità durante l’esecuzione del programma. Questo metodo è detto invariante di ciclo.
Il calcolatore è:
a) un
sistema
b) un
esecutore di programmi
c) una
macchina programmabile
Un programma può
permettere al calcolatore di eseguire una molteplicità di operazioni.
Programma=applicazione
L’applicazione
comprende:
1- dati gestiti
dall’applicazione come informazioni elementari che possono a loro volta:
a)
essere
acquisiti
b) essere memorizzati
c) manipolati
d) visualizzati
2- operazioni
che possono essere usate per manipolare le informazioni, trasformandole e
generandonde di nuove
e normalmente le caratteristiche di una applicaizone sono:
1- permettere
agli utenti di perseguire un particolare scopo
2- gestire
informazioni soto forma di dati
3- elaborazione
di dati mediante delle operazioni
4- le
operazioni possono essere eseguite in modo interattivo se sono soddisfatte le
condizioni che ne abilitano l’esecuzione
ð Un linguaggio
è un insieme di costrutti linguistici – detti istruzioni (o operazioni) – e di
regole che possono essere usate per esprimere i passi necessari alla
risoluzione di problemi.
Ciascuna applicazione
ha il proprio linguaggio.
Spesso la capacità di
usare un linguaggio è abbastanza indipendente dalla comprensione e dal
funzionamento del calcolatore.
Esempi:
ð
Word Processor
ð
Foglio elettronico
ð
Browser Web à particolare questo permette queste
operazioni:
a) accesso
ad una pagina web per mezzo dell’URL
b) Navigazione
ipertestuale
c) Altre
operazione come per esempio la gestione dei segnalibri.
ð L’interfaccia
è il mezzo di interazione tra l’utente (dell’applicazione) e il calcolatore
(esecutore dell’applicazione).
Le applicazioni
moderne godono di interfaccie grafiche di tipo GUI –mouse, bottoni, icone, ecc.
Inoltre se prendiamo
come esempio GUI le finestre, essere funzionano con la tecnologia WYSIWYG (What
you see is what you get)
Godono di modalità di
interazione simili (tipo il menù File uguale per tutti)
Alcune interazioni con
la tastiera:
-
inserimento di testi
-
modifica e cancellazione testi
-
copia-e-incolla testi
interazione con il
mouse sono invece:
-
Point-and-click
-
Double-click
-
Drag-and-Drop
Il calcolatore è un sistema: è un oggetto costituito da da molte parti
(componenti) che interagiscono, cooperando, al fine di ottenere un certo
comportamento. La decomposizione di un sistema può essere gerarchica
poiché ogni componente può essere solitamente considerato a sua volta un
sistema di cui si può studiare l’architettura.
La prima decomposizione in assoluto può essere
quella:
-
Hardware
à Struttura fisica del
calcolatore, costituita da componenti elettroniche ed elettromagnetiche
-
Software Software di base (tra
cui il sistema operativo)
Software applicativo
Il software in linea
di massima ha il compito di mostrail il calcolatore all’utente come una
macchina virtuale più semplice da usare. Per Macchina virtuale si intende una
macchina che fisicamente non esiste nella realtà, ma che attraverso l’interfaccia
ci fa rendere conto della sua esistenza.
Il software
applicaativo viene realizzato nei termini imposti dalla macchina virtuale
del software di base e solo raramente dipende effetivamente dall’hardware
utilizzato.
1- Ciascuna macchina di un determinato livello fornisce un proprio linguaggio più semplice da utilizzare rispetto q quello del livello sottostante.
2- Ciascun livello è realizato in termini
del linguaggio del livello immediatamente sottostante.
3- L’hardware
è l’unica macchina reale, tutti i livelli superiori, gli strati software
corrispondono a macchine virtuali.
È quel repertorio di istruzioni che l’hardware
sa eseguire direttamente. È composto da istruzioni elementari, ma che
l’hardware sa eseguire in modo molto efficiente.
Man mano che si sale di livello nel software si
raggiunge un linguaggio sempre più vicino alla logica dell’utente e più lodano
da quella del calcolatore, ed è per questo che il linguaggio ci sembra man mano
più semplice.
Dal momento che
l’architettura dell’hardware di un calcolatore è molto complessa, viene
introdotta la Macchina
di Von Neumann che è una visione semplificanta dei
calcolatori moderni. La macchina di Von Neumann è composta da 4 componenti
funzionali fondamentali:
C.P.U.
1-
esegue istruzioni per l’elaborazione dei
dati
2-
svolge operazione di controllo e di
coordinamento delle altre componenti funzionali
Von
Neumann
Memoria
centrale:
memorizza
e fornisce l’accesso a dati e programmi
Interfaccie
di ingresso e di uscita:
periferiche
esterne al calcolatore
Bus:
svolge la funzionalità di trasferimento dati e di informazioni di controllo tra le varie componenti funzionali
Le informazioni
elaborate da un calcolatore sono rappresentante sotto forma di dati (informazioni
elementari)
I dati vengono
rappresentati nel calcolatore mediante delle codifiche binarie.
ðL’elaborazione dei dati viene svolta
dall’unità
aritmetico-logica (ALU), che è un componente dell’unità
cemtrale di elaborazione.
Il calcolatore
ha poi bisogno di memorizzare, in modo temporaneo o permanente, i dati per la rappresentazione
delle informazioni di interesse
La memoria
è organizzata in celle
alle quali è assegnato un indirizzo
che la identifica. Ogni cella è in grado i memorizzare il valore di un dato
Una unità di memoria fornisce due operazioni.
a) memorizzazione (scrittura)
b) accesso al dato
memorizzato (lettura)
Nella memoria
vengono utilizzati anche i programmi: viene utilizzata una particolare codifica
delle istruzioni.
Bus
È quella parte
del calcolatore dedicata al trasferimento dei dati e delle informazioni di
controllo tra le varie parti del calcolatore. Vengono anche trasferiti i
segnali di controllo dei calcolatori.
Il Bus
permette di collegare tutti i componeti del calcolatore tra loro collegandoli
tutti quanti ad unico insieme di linee (bus). Questo metodo favorisce la
modularità e l’espandibilità del calcolatore.
La CPU
comprende anche l’unità di controllo. Ogni componente del calcolatore esegue
solo le azioni che gli vengono richieste dall’unità di controllo. La sua
attività si basa su una scansione temporale imposta dall’orologio di sistema (clock). Quindi abbiamo:
Un calcolatore può essere collegato a diverse periferiche di entrata o di uscita, ma nella macchina di Von Neumann le periferiche non fanno parte del calcolatore. ð ogni periferica è controllata mediante un’opportuna interfaccia che ha il compito di tradurre i segnali interni de calcolatore in formato comprensibile alla periferica stessa, e viceversa.
I dati sono codificati
in forma binaria.
BIT (binary digit - cifra binaria)
Un bit pua avere due valori
0 e 1. Ciascun bit è memorizzato da una cellaelementare di memoria, fisicamente
realizzata come dispositivo elettronico in cui sono chiaramente distinguibili
due stati.
I dati vengono
codificate in sequenze
di bit
BYTE è una sequenza di
8 bità
le possibili combinazioni sono 28=256
Per consentire la
corretta interpretazione delle sequenze binarie, vengono utilizzati dei
meccanismi di tipizzazione.
Ecco alcuni esempi:
Alcuni
tipi di dato in un calcolatore · interi relativi (ovvero, con segno) a 32 bit · per
valori compresi tra -2147483648 e +2147483647 · interi
relativi (ovvero, con segno) a 8 bit · per
valori compresi tra -128 e +127 · numeri naturali (owero, senza segno) a 8 bit · per
valori compresi tra O e +255 · caratteri dell'alfabeto ASCII (8 bit) caratteri dell'alfabeto Unicode (16 bit) · numeri razionali in virgola mobile secondo lo standard IEEE
754-1985 a 32 bit e
9 cifre
significative e mantissa tra ~5 e +38 · numeri razionali in virgola mobile secondo Io standard IEEE
754-1985 a 64bit e 18 cifre significative e mantissa tra -324 e +308) valori
logici (vero o falso)
Tipi di dato
L’unità centrale è di solito realizzata sotto
forma di microprocessore.
PC: Program Counter –
registro contatore delle istruzioni – indirizzo della prossima istruzione da
eseguire.
IR: Instruction register – registro delle istruzioni – l’istruzione che deve essere eseguita (codificata)
MAR: Registro di
indirizzamento della memoria – indirizzo della cella di memoria che deve essere
acceduta o memorizzata
MDR: Registro dati di
memoria – dato che è stato acceduto o che deve essere memorizzato
PSW: Parola di stato
del processore – contiene informazioni. Opportunamente codificate, circa
l’esito dell’ultima istruzione che è stata appena eseguita
Poi comunque abbiamo
altri registri, utilizzati ad esempio per la memorizzazione degli operandi e
del risultato di una operazione.
Caratteristiche dei moderni Microprocessori:
1- Repertorio
di istruzioni: le istruzioni del linguaggio macchina del
processore
2- Velocità:
misurata con la frequenza del clock (va osservato che l’esecuzione di ciascuna
istruzione richiede solitamentepiù cilci macchina
3- Ampiezza
del bus: numero di bit nel bus interno del processore.
4- Co-processore: nei moderni processori abbiamo per
esempio il co-processore matematico
5- Cache: memoria veloce locale al microprocessore,
che consente un’accellerazione nell’esecuzione dei programmi.
Può essere acceduta
direttamente dal processore. È cosi composta:
1-
Capacità: numero di bit che possono essere memorizzati, misurati in byte
(e multipli del byte):
Ø1 kbyte = 210 byte = 1024 Byte
Ø1 Mbyte = 220 byte = 1 048 576 Byte
Ø1 Gbyte = 230
byte = 1 073 741 824 byte
2- Velocità di
accesso:velocita delle operazioni di lettura/scrittura
3- Volatilità:
a)Memorie RAM (Random
Access Memory): possono essere sia lette che scritte, ma sono temporanee e
vengono perse se non salvate.
b)Memorie ROM (Read
only memory) possono essere solo lette, in cui i dati sono memorizzati in modo
permanente.
1- Non
volatilità: i dati non vengono persi perché memorizzati
2- Grande
capacità: la capacità
della memoria secondaria è maggiore (anche di diversi ordini) della memoria centrale
3- Bassi
costi: è molto minore,
per bit, della memoria centrale
4- Minore
velocità di accesso rispetto alla memoria centrale
5- I
dati per essere acceduti dal processore devono comunque transitare nella
memoria centrale
In conclusione
La Memoria Centrale
memorizza tutti i programmi e i dati del calcolatore.
La Memoria Secondaria
memorizza tutti i programmi in esecuzione e i dati necessari per la loro
esecuzione.
Abbiamo 1 o più piatti
di alluminio rotanti ricoperti di materiale magnatico e da testine.
Le testine permettono
lettura e scrittura di bit su un disco, memorizzati sotto forma di
polarizzazione (positiva e negativa).
Un piatto è formato da 2
superfici,
a loro volta suddive in tracce(circolari)
e settori(a spicchio):
-Un cilindro
è l’insieme delle traccie in una data posizione radiale.
-I settori sono
le unità logiche di memorizzazione con la capacità di 512 byte
ciascuna.
L’indirizzo di un settore è dato
da:
-Cilindro
-Superficie
-Settore
Il sistema operativo
è il componente del software di base, responsabile della gestione delle risorse
del calcolatore, e in particolare di comele risorse vengono allocate alle
applicazioni.
Per avviare
l’esecuzione del programma il sistema operativo:
-individua il codice
eseguibile del programma, memorizzato su disco.
-alloca al programma
le risorse necessarie per la sua esecuzione (per esempio una quantità di
memoria centrale)
-carica il codice
eseguibile del programma in memoria centrale
-avvia il programma
I sistemi operativi
hanno una struttura complessa, che può essere descritta com una gerarchia di
macchine virtuali.
Nucleo:
anche detto gestore
dei processi è responsabile della gestione della risorsa
unità di elaborazione (processore)
Fisicamente sotto il
nucleo esiste una sola unità di elaborazione che lascia intendere che si
potrebbe eseguire un solo programma alla volta.
Il nucleo definisce
tante elaborazioni virtuali, una per ogni programma che si vuole eseguire.
Il nucleo può genstire
eventualmente anche la presenza di più unità di elaborazione.
Gestore della memoria:
a) consente
l’allocazione dinamica della memoria centrale ai programmi in esecuzione. Viene
allocata una memoria virtuale sufficiente per l’esecuzione di ogni programma
b) gestisce
la corrispondenza tra le memorie virtuali e l’unica memoria reale
c) può
rendere la memoria virtuale maggiore di quella reale parcheggiando i dati
temporaneamente nella memoria secondaria.
Gestore delle periferiche:
Adatta le modalità
d’uso delle singole periferiche (che possono essere estremamente diverse) a
quello di poche tipologie di periferiche virtuali. Un driver per esempio adatta
i dati dal formato virtuale, che viene usato sopra il gestore delle
periferiche, a quello della periferica effettivamente in uso.
Gestore dei file (o file system):
Gestisce la memoria secondaria:
Organizzazione
logica:
File:
sequenza di dati di demensione variabili, con accesso sequenziale oppure
casuale
Directory: (direttorio)
contenitore di un insieme di file e/o di directories.
Volume:
è un contenitore di file e cartelle, solitamente corrispondente ad una unità a
disco.
Il gestore inoltre mostra anche le periferiche
come dei File.
Interfaccia
a caratteri (“prompt”) Interfaccia
utente
Interfaccia utente del sistema operativo. Esso
definisce le operazioni che possono essere utilizzate direttamente dall’utente
finale, chiamate comandi.
Di solitoi sistemi
sono corredati di un insieme di programmi per la configurazione,
l’ottimizzazione e la gestione ordinaria del sistema.
È un contenitore
logico di informazioni. È caratterizzato da:
a) Un
contenuto: sequenza di bit da interpretare opportunamente.
b) Un
nome: ne consente l’individuazione poiché indica il nome del file e il percorso.
Il
nome scelto dall’utente (esempio.*)
Il
nome del file è composto da:
(ricordiamo che
definiamo root
la directory/cartella di livello gerarchico più elevato, corrispondente ad un
intero volume)
I moderni sistemi
operativi gestiscono l’associazione tra estensioni e applicazioni (selezionato
un fil viene aperta l’applicazione associata che a sua volta apre il file
selezionato dall’utente).
Un programma
dal punto di vista del programmatore è:
-descrizione di un insieme di operazioni che possono
essere eseguite da una calcolatore
-descrizione dei dati necessari all’esecuzione
delle operazioni.
La programmazione
è l’attività di scrittura dei programmi.
Quindi ora definiamo:
applicazione:
un programma dal punto di vista dell’utente
programma:
la descrizione di un’applicazione.
Programma come
descrizione di una applicazione, quindi, insieme di frasi:
-frasi che descrivono
le operazioni e le tipologie di dati di interesse per l’applicazione
-frasi che sono
scritte in un qualche linguaggio specializzato per la definizione di programmi
Un linguaggio di programmazione è
un linguaggio specializzato per la definizione di programmið
Un linguaggio di
programmazione consiste in:
-istruzioni
-regole per l’uso
di istruzioni
Compilatore: è un’applicazione
per tradurre programmi scritti in un linguaggio di programmazione in programmi
equivalenti scritti nel linguaggio macchina di un calcolatore.
Ciascuna istruzione del linguaggio di programmazione viene tradotta solitamente in molte istruzioni del linguaggio macchina.
Linguaggi ad alto livello: linguaggi che
permettono di scrivere programmi in termini di istruzioni “vicine” alla logica
delle techiche di risoluzioni di problemi e non in termini di istruzioni
legate all’hardware dei calcolatori.
Linguaggi a basso livello: ogni
calcolatore ha un proprio linguaggio macchina; questi coincidono con le
istruzioni di macchina.
Linguaggi intermedi/Linguaggi assemblativi:
ad ogni istruzione del linguaggio corrispondono una o più (comunque poche)
istruzioni di macchina.
Reti di calcolatori: insieme di
calcolatori indipendenti, collegati tra di loro per l’eventuale scambio di
dati.
Le applicazioni per
queste reti sono organizzate sul modello di
Cliente/servente
(Client/server) quindi un servizio.
Internet è la più
grande rete di calcolatori. In questa il www (World Wide Web o semplicemente
Web) è in servizio più diffuso.
Il nome di ogni
risorsa su Internet è l’indirizzo
della risorsa (anche URL)
Un browser web permette
l’accesso a documenti sul web.
Àncora: elemento della pagina a
cui è associato il collegamento
La
pagina referenziata dal collegamento
Scambio
di dati tra calcolatori:
È un insieme di
regole, relative ai messaggi consentiti e al loro formato, che controllano lo
scambio di informazioni in una comunicazione. La comunicazionetra due o più
entità è possibile solo sulla base dell’accettazione e dell’adozione di uno o
più protocolli.
(di solito si adotta
un protocollo per ciascun diverso aspetto della comunicazione)
Due sistemi con linguaggi diversi possono comunicare tra di
loro adottando entrambi un traduttore che opera dal loro diverso, singolo linguaggio
ad uno comune scelto/concordato da entrambi.
La realizzazione di una rete di reti richiede la
presenza di dispositivi di rete dedicati alla ritrasmissione dei dati tra reti:
ðIMP
(Interface Message Processor) e corrispondono a ripetitori, ponti instradatori
(router) e gateway.
Ciascun
IMP ha il compito di far giungere i pacchetti all’IMP destinatario.
Poi avviene un po’
quel che avveniva con i calcolatori ad Anello. Infatti:
ð Se il
pacchetto viene generato da una rete, l’IMP di questa rete trasmetterà il
pacchetto all’IMP adiacente e così via finchè si arriva all’IMP destinatario.
ð Qundi ciascun
IMP leggerà il messaggio; se si riconoscerà nel destinatario lo immetterà nella
propria rete. In caso contrario lo ignorerà trasmettendolo a sua volta ad un
altro IMP adiacente.
Quindi l’instradamento
diventa un problema quando bisogna determinare un percorso per il pacchetto tra
un insieme di IMP che sono generalmente collegati in modo irregolare e variante
nel tempo. E per risolvere questo problema ciascun IMP dispone di informazioni
relative alle reti e agli IMP a cui è attualmente collegato.
La comunicazione
richiede l’adozione di un insieme di protocolli, uno per ciascun
livello della comunicazione.
Famiglia di protocolli: insieme
compatibile di protocolli.
Il modello ISO-OSI è
un modello semplicemente teorico.
I livelli in questo
modello sono:
Applicazioneà e-mail,
trasferimento file, www (scambio bidirezionale di messaggi tra utenti di
applicazioni)
Presentazioneà sintassi dei
messaggi trasmessi (codifica, compressione, crittografia)
Sessioneà controllo
delle sessioni di comunicazione tra utenti collegatiai calcolatori della rete
Trasportoà gestisce la
suddivisione di messaggi in pacchetti
Reteà gestisce il
problema dell’intradamento
Collegamentoà si occupa
della comunicazione libera da errori di sequenze (chiamate trame) di byte, tra
nodidella rete collegati direttamente
Fisicoà si occupa
della trasmissione dei singoli bit attrverso il canale fisico, gestendo quindi
gli aspetti di livello più basso della comunicazione.
Øil server fornisce un insieme di servizi
applicativi, come la gestione dei dati e l’esecuzione di operazioni
Øil client interaziona co l’utente e opera per la
visualizzazione dei dati (utilizzatore di servizi)
I clienti hanno ruolo attivo, i serventi hanno
ruolo reattivo.
Una internet
(con la “i” minuscola) è un rete di calcolatori basata sulla famiglia di
protocolli TCP/IP, nota che come Internet
Suite
TCP/IP Ø significa Trasport Control Protocol/Internet
Protocol
Internet
(con la “i” maiuscola) è la più grande rete di reti di calcolatori, a
diffusione mondiale.
(Internet ha avuto origina dal progetto militare
ARPANET)
Il nome dei calcolatori in Internet è formato da
domini (divisi dal punto). I domini hanno una organizzazione gerarchica. Per
esempio .it è il dominio dei calcolatori collegati in internet in Italia.
L’identificativo
dell’utente di solito viene definito come:
nome_utente@dominio_del_server_di:appartenenza.dominio_nazionale
Internet fornisce ai suoi utenti un certo
livello di interoperabilità
World
Wide Web Bacheca
elettronica Posta
elettronica Trasferimento
di file Collegamento
Remoto Principali
servizi di interoperabilità di Internet
Interoperabilità:
si intende la disponibilità di servizi di adattamento e conversione che rendono
possibile lo scambio di informazioni tra sistemi (possibilmente non omogenei)
I nomi del World Wide Web (URL) sono formati da
tre parti:
1- il
nome del protocollo applicativo (http)
2- il
nome di un calcolatore (o di un dominio)
3- il
nome di un documento (con percorso e nome del file)
Le pagine Web sono solitamente scritte i HTML
(HyperText Makeup Language – Linguaggio per ipertesti a marcature)
La richiesta di accesso a una pagina può essere
esaudita da un server Web generando la pagina HTML in modo dinamico, mediante
l’esecuzione di un apposito programma applicativo.