Cos'è l'HTTP?

La Hypertext Transfer Protocol (HTTP) è ciò che consente al tuo browser di comunicare con un server e ottenere informazioni da Internet.

cos'è http

HTTP è un protocollo per la codifica e il trasporto di informazioni, come testo, immagini, suoni, video e contenuti multimediali, tra un browser Web e un server Web su Internet

La Hypertext Transfer Protocol (HTTP) è ciò che consente al tuo browser di comunicare con un server e ottenere informazioni da Internet. È la base del modo in cui navighiamo sul Web ed è essenziale che tu comprenda questo protocollo per creare siti Web o app che fanno qualcosa di diverso dalla visualizzazione di contenuto statico. In questo articolo, discuteremo delle richieste HTTP e delle risposte HTTP, nonché di alcune intestazioni importanti di cui avrai bisogno durante la creazione del tuo sito web.

http

HTTP sta per Hypertext Transfer Protocol. È la lingua del web ed è ciò che fa sì che il tuo browser ti mostri un sito web. HTTP definisce come formattare i dati in modo da poter vedere immagini, leggere testo o guardare video online. Questo articolo spiegherà tutto su HTTP in dettaglio in modo che tu sappia come usarlo sul tuo computer durante la navigazione nei siti Web!

HTTP è un protocollo, che sta per Hypertext Transfer Protocol. È lo standard utilizzato dai browser Web per richiedere e ricevere informazioni da un server su una rete. Il protocollo HTTP è stato progettato da Tim Berners-Lee nel 1991 come parte del suo progetto originale per quello che sarebbe diventato il World Wide Web. HTTP è l'acronimo di Hypertext Transfer Protocol. È un modo per trasferire dati su Internet tra server Web e browser. HTTP può essere utilizzato in molti scenari diversi, ad esempio quando si desidera visualizzare un sito Web sul telefono o utilizzarlo insieme alla crittografia SSL.

HTTPS è la variante più sicura, utilizzata oggi dalla maggior parte dei siti Web. Impara di più riguardo HTTPS qui

A cosa serve HTTP?

HTTP è il protocollo utilizzato dalla maggior parte dei siti Web per comunicare con i browser Web. Viene utilizzato anche per molte altre cose, come scaricare file sul tuo computer o dispositivo mobile; trasferire dati tra due server su Internet e persino inviare messaggi da un telefono cellulare a un altro.

L'Hypertext Transfer Protocol può essere visto come un protocollo a livello di applicazione, il che significa che il suo compito è fornire dati da un sistema informatico a un altro con una struttura basata su messaggi. Il client richiede un tipo di risorsa (ad esempio una pagina Web) inviando una riga di richiesta HTTP seguita da intestazioni aggiuntive, ciascuna sulla propria riga. Una volta che questo è stato inviato con successo, il server risponde con una riga di risposta HTTP seguita da un numero qualsiasi di righe di intestazione per fornire

Ciò è particolarmente preoccupante in quanto consente a tutti i tipi di dispositivi, come telecamere e DVR in esecuzione su firmware meno recenti con un'autenticazione della password telnet debole, di entrare a far parte di un esercito di botnet senza alcuna modifica.

Sebbene siamo stati in grado di confermare questi rapporti, abbiamo anche notato qualcosa di piuttosto insolito: veniva utilizzato HTTP al posto dei più comuni protocolli UDP o TCP. Questo ha immediatamente fatto scattare gli allarmi e ci ha portato a credere che ci fosse una ragione di fondo per questo cambio di tattica; uno che ha portato a funzionalità aggiuntive per l'autore del malware. 

Scambio dati HTTP

Lo scambio di dati TTP consente a due servizi di comunicare tra loro. È il processo di passaggio di informazioni tra due sistemi utilizzando richieste e risposte HTTP. Esistono diversi modi in cui le informazioni possono essere trasmesse attraverso questo canale di comunicazione, inclusa la pubblicazione di dati del modulo, l'invio di dati JSON o XML, ecc. Ma per ora, diamo un'occhiata a come funziona quando passiamo coppie chiave-valore codificate nel modulo nel corpo di una richiesta HTTP POST. Utilizzo di Python per eseguire richieste di moduli HTML

Python ha diversi moduli che ti aiuteranno a inviare richieste di servizi Web (urllib2), ricevere risposte (server socket) e analizzare pagine HTML (BeautifulSoup). Quindi, se vuoi analizzare la tua pagina HTML ricevuta, dovrai installare la libreria BeautifulSoup.

Inoltre, per inviare richieste HTTP POST, avrai bisogno anche del modulo urllib2. Ecco un esempio su come utilizzare questi moduli insieme:

  • importa socketServer
  • importa urllib2
  • richiesta = urllib2.Richiesta
  • risposta = urllib2.urlopen(richiesta)
  • htmlStringa = risposta.read()

Autenticazione HTTP

Quando inizia un'interazione web, di solito accadono le seguenti cose Questa è nota come "autenticazione di base HTTP". L'idea alla base è che quando si effettua una richiesta a una pagina Web, oltre a inviare le intestazioni con il tipo di contenuto appropriato e simili, si inviano anche alcune credenziali codificate in base64 (sì, quella codifica estremamente fastidiosa). Ora per ogni browser là fuori, c'è un login/password associato che si utilizza per accedere al sito web. Le credenziali inviate dal tuo browser devono corrispondere esattamente a ciò che ci si aspetta da esso. Si noti che solo il nome utente e password vengono inviati in chiaro - tutto il resto viene crittografato utilizzando SSL/TLS. Le credenziali vengono inviate come parte dell'intestazione "autorizzazione" e hanno il seguente aspetto:

Sessione dell'applicazione HTTP

HTTP è un protocollo senza stato. Ciò significa che ogni richiesta deve contenere tutte le informazioni necessarie per soddisfare la richiesta e indirizzare il destinatario a intraprendere l'azione appropriata, a differenza di altri protocolli come FTP o Telnet.

Ci sono altri aspetti di HTTP che lo rendono adatto all'uso come meccanismo di sessione:

È basato sul testo, quindi non c'è codice binario da trasformare attraverso una codifica come BinHex o UUencode (sebbene questi esistano per il traffico web!) prima di essere iniettato in un altro sistema; Utilizza TCP, in particolare la porta 80: ciò significa che se la tua applicazione può controllare il tuo traffico in uscita, allora hai libero sfogo sulla quantità di dati che immetti nell'infrastruttura di qualcun altro senza che alcun sospetto venga sollevato dai registri del firewall; Utilizza un modello client/server.

Il client invia le richieste e il server risponde a tali richieste asynccorrettamente, fornendo molte opportunità per l'offuscamento o l'iniezione in un altro sistema rispondendo con i dati dal proprio computer

È ampiamente supportato, quindi puoi iniettare traffico HTTP su qualsiasi piattaforma di destinazione senza dover sapere nulla sulla loro particolare implementazione di protocolli e servizi web. Il messaggio di risposta HTTP sono i dati ricevuti da un dispositivo client dal server web. 

Il problema: non abbiamo un identificatore di sessione!

HTTP non fornisce un meccanismo per identificare quale sessione stiamo tentando di dirottare. La soluzione? Abbiamo bisogno di un modo per creare il nostro identificatore di sessione che possiamo inviare al posto di uno esistente; se ci riusciamo, il destinatario inserirà il nostro input in una nuova sessione HTTP (raggiungendo così il nostro obiettivo di dirottare una sessione HTTP).

HTTP, considerato come risorsa web o protocollo di trasferimento per il world wide web e si basa su un modello client/server in cui un agente utente (il client) richiederebbe informazioni da un computer remoto tramite il protocollo HTTP e riceverebbe i dati richiesti in cambio.

Richiedi metodi di HTTP

Sebbene tu possa creare un server Web full-stack semplicemente ottenendo e POST, man mano che l'app cresce, diventa più difficile da gestire. Il client HTTP che potresti incontrare metodi che sono: OPTIONS, HEAD, PUT, DELETE e TRACE. Queste richieste ti aiuteranno a gestire meglio i dati delle app e forniranno comodità per la gestione dei dati della sessione.

OPZIONI HTTP

Il metodo HTTP OPTIONS viene utilizzato dai client HTTP per richiedere informazioni sulle opzioni di comunicazione disponibili sulla risorsa richiesta. È molto raramente supportato dai browser perché in pratica non è utilizzato dagli utenti finali, rendendolo quasi inutile. L'eccezione è Internet Explorer 5+ che supporta questa funzione, anche se solo se è stata attivata tramite un'impostazione.

INTESTAZIONI HTTP

Il metodo HTTP HEAD è identico al metodo GET tranne per il fatto che il trasferimento dei campi di intestazione della risposta è omesso. Ciò significa che non puoi accedere a nessun contenuto della pagina, ma di solito non ne hai bisogno, quindi questo lo rende più leggero di una normale richiesta ed è più veloce. Google Chrome e Opera supportano questo metodo così come la maggior parte dei server proxy.

INSERIMENTO HTTP

Il metodo HTTP PUT richiede che una risorsa specificata venga archiviata nell'URI di richiesta effettivo fornito. La differenza fondamentale tra l'utilizzo di POST e PUT per la creazione di risorse è che POST consente al client di creare una risorsa con una richiesta indipendente da quale sarà la risorsa, mentre PUT crea sempre una nuova istanza della risorsa identificata dalla richiesta effettiva per i client web .

ELIMINA HTTP

Il metodo HTTP DELETE richiede che il server di origine rimuova l'associazione tra l'URI di richiesta effettivo e la risorsa da esso identificata. Dopo una corretta implementazione, tutti gli effetti di qualsiasi metodo eseguito sulla risorsa specificata prima dell'ELIMINA (compresi gli effetti in altre risorse risultanti da tali metodi)

Traccia HTTP

Il metodo HTTP TRACE viene utilizzato per replicare la richiesta ricevuta in modo che un client possa vedere cosa viene ricevuto e magari utilizzare le informazioni per scopi di test o diagnostici. Quando viene utilizzato TRACE, il destinatario finale è in grado di vedere tutti questi dati, il che lo rende un grave problema di sicurezza.

Conclusione

L'HTML è il linguaggio in cui sono scritte le pagine Web. È l'acronimo di HyperText Markup Language ed è ciò che indica ai browser come visualizzare una pagina Web. L'HTML non include comandi per cose come il caricamento di immagini o la riproduzione di video: questi sono gestiti da tecnologie separate come CSS, JavaScript, AJAX, ecc.

Riferimenti

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview

Casa » web hosting » Glossario » Cos'è l'HTTP?

Iscriviti alla nostra newsletter

Iscriviti alla nostra newsletter settimanale di riepilogo e ricevi le ultime notizie e tendenze del settore

Cliccando 'iscriviti' accetti il ​​nostro termini di utilizzo e informativa sulla privacy.