Hva er innholdsforhandling?
Innholdsforhandling er en teknikk som er beskrevet i HTTP-spesifikasjonen (hyptertext transfer protocol) som lar en ekstern klient stille en mer spesifikk forespørsel fra en webserver. Metoden gir serveren muligheten til å være vert for flere typer filer, dokumenter på forskjellige språk og mer, hver med varierende kvalitetsnivå. Disse separate valgene er vert som en enkelt referanse, betegnet med dens enhetlige ressursidentifikator (URI), og er ment å gi mer anvendelig innhold når det er tilgjengelig på serveren.
Der en enhetlig ressurslokator (URL) er en referanse til en fil på et bestemt sted, for eksempel i en mappe på serveren, kan en URI referere til hva som helst, praktisk talt hvor som helst. Spesifikasjonene til URI, for eksempel plasseringen av filen som skal leveres, navnet på filen og dens type, blir utarbeidet etter at innholdet er forhandlet frem. Dette gjør at de forskjellige innholdsdelene kan sitte på forskjellige steder, for eksempel alle filene for et bestemt språk organisert under det språks mappe på serveren.
Tanken bak innholdsforhandling er at webserveren skal levere best mulig innhold for en gitt brukeragent eller nettleser. Den kan levere bestemte bildefiltyper eller annet innhold til klienter som er i stand til å støtte dem. Dette er nyttig når du er vert for flere versjoner av en fil for å støtte flere surfeplattformer, for eksempel mobile enheter.
For å gjøre alt dette, beskriver HTTP to metoder for innholdsforhandling, samt foreslår muligheten til å kombinere de to. En metode er serverdrevet forhandling. Med denne metoden tar serveren en best mulig beslutning om hva han skal levere, basert på hvilken logikk den er gitt, og hvilket innhold som er tilgjengelig. .
Det er imidlertid noen vanskeligheter med serverdrevet innholdsforhandling. Serveren vet ikke hvordan han skal svare på alle mulige forespørsler, så den må ta gjetninger basert på logikken den fikk for å ta disse beslutningene. Den kan ikke vite om nettleseren kjører på en mobil enhet, eller om det forespurte dokumentet er ment å bli sendt direkte til en skriver med mindre det blir fortalt. Det er også personvernproblemer ved at den serverdrevne metoden forventer at forespørselen sender informasjon om brukeren som sender forespørselen.
Den andre metoden er kjent som agentstyrt innholdsforhandling. Her sender brukeren en forespørsel fra serveren, og serveren sender tilbake en liste over tilgjengelige alternativer, hvis noen finnes. Valget gjøres automatisk, basert på tilgjengelige nettleser- eller plattforminnstillinger, eller manuelt i form av alternativer presentert i HTML. Den primære ulempen med det agentdrevne alternativet er flere forespørsler til serveren om best mulig innhold. Når en proxy-server bufrer forespørsler til en server som bruker agentstyrt forhandling, vil den imidlertid kunne levere riktig innhold til alle brukere bak proxy via en enkelt forespørsel til cachen.