La negoziazione del contenuto è una tecnica descritta nella specifica del protocollo di trasferimento hyptertext (HTTP) che consente a un client remoto di effettuare una richiesta più specifica di un server web. Il metodo offre al server la possibilità di ospitare più tipi di file, documenti in diverse lingue e altro, ciascuno con diversi livelli di qualità. Queste selezioni separate sono ospitate come un singolo riferimento, indicato dal relativo identificatore di risorsa uniforme (URI) e hanno lo scopo di fornire contenuto più applicabile quando è disponibile sul server.
Laddove un URL (Uniform Resource Locator) è un riferimento a un file in una posizione specifica, ad esempio all’interno di una cartella sul server, un URI può fare riferimento a qualsiasi cosa, praticamente ovunque. Le specifiche dell’URI, come la posizione del file da consegnare, il nome del file e il suo tipo, vengono elaborate dopo che il contenuto è stato negoziato. Ciò consente ai vari pezzi di contenuto di trovarsi in posizioni diverse, come tutti i file per una determinata lingua organizzati nella cartella di quella lingua sul server.
L’idea alla base della negoziazione dei contenuti è che il server Web fornisca il miglior contenuto possibile per qualsiasi agente utente o browser Web. Può fornire determinati tipi di file di immagine o altri contenuti ai client in grado di supportarli. Ciò è utile quando si ospitano più versioni di un file per supportare più piattaforme di navigazione, come i dispositivi mobili.
Per fare tutto questo, l’HTTP descrive due metodi di negoziazione dei contenuti, oltre a suggerire la possibilità di combinare i due. Un metodo è la negoziazione guidata dal server. Con questo metodo, il server prende la migliore decisione possibile su cosa consegnare, in base a qualunque logica sia data e quale contenuto è disponibile. .
Tuttavia, ci sono alcune difficoltà con la negoziazione dei contenuti guidata dal server. Il server non sa come rispondere a ogni possibile richiesta, quindi deve fare delle ipotesi in base alla logica che gli è stata data per prendere quelle decisioni. Non può sapere se il browser Web è in esecuzione su un dispositivo mobile o se il documento richiesto deve essere inviato direttamente a una stampante a meno che non gli venga comunicato. Ci sono anche problemi di privacy, in quanto il metodo guidato dal server si aspetta che la richiesta invii informazioni sull’utente che effettua la richiesta.
Il secondo metodo è noto come negoziazione del contenuto guidata da agenti. Qui, l’utente fa una richiesta al server e il server restituisce un elenco di alternative disponibili, se ne esistono. La selezione viene effettuata automaticamente, in base alle preferenze del browser o della piattaforma disponibili, o manualmente sotto forma di opzioni presentate nell’HTML. Lo svantaggio principale dell’opzione basata su agente sono le richieste multiple al server per il miglior contenuto possibile. Quando un server proxy memorizza nella cache le richieste a un server che utilizza la negoziazione guidata dall’agente, tuttavia, sarà in grado di fornire il contenuto appropriato a tutti gli utenti dietro il proxy tramite una singola richiesta alla cache.