Sisällön neuvottelu on tekniikka, joka on kuvattu HTTP -hyptertekstinsiirtoprotokollan spesifikaatiossa ja jonka avulla etäasiakas voi tehdä tarkemman pyynnön verkkopalvelimelta. Menetelmä antaa palvelimelle mahdollisuuden isännöidä monentyyppisiä tiedostoja, asiakirjoja eri kielillä ja paljon muuta, joista jokaisella on erilaiset laatutasot. Nämä erilliset valinnat isännöidään yhtenä viitteenä, jota merkitsee sen yhtenäinen resurssitunniste (URI), ja niiden on tarkoitus tarjota enemmän soveltuvaa sisältöä, kun se on saatavilla palvelimella.
Jos yhtenäinen resurssipaikannin (URL) viittaa tiedostoon tietyssä paikassa, kuten palvelimen kansiossa, URI voi viitata mihin tahansa, lähes mihin tahansa. URI: n yksityiskohdat, kuten toimitettavan tiedoston sijainti, tiedoston nimi ja tyyppi, määritetään sisällön neuvottelun jälkeen. Tämä mahdollistaa sen, että eri sisällöt voivat sijaita eri paikoissa, kuten kaikki tietyn kielen tiedostot, jotka on järjestetty kyseisen kielen palvelimen kansioon.
Sisältöneuvottelun idea on, että verkkopalvelin toimittaa parasta mahdollista sisältöä mille tahansa käyttäjäagentille tai selaimelle. Se voi toimittaa tiettyjä kuvatiedostotyyppejä tai muuta sisältöä asiakkaille, jotka pystyvät tukemaan niitä. Tästä on hyötyä, kun isännöidään useita tiedoston versioita useiden selausalustojen, kuten mobiililaitteiden, tukemiseksi.
Tätä varten HTTP kuvaa kahta sisältöneuvottelumenetelmää ja ehdottaa kykyä yhdistää nämä kaksi. Yksi tapa on palvelinlähtöinen neuvottelu. Tällä menetelmällä palvelin tekee parhaan mahdollisen päätöksen siitä, mitä toimitetaan, riippumatta siitä, mitä logiikkaa se antaa ja mitä sisältöä on saatavilla. .
Palvelinlähtöisessä sisältöneuvottelussa on kuitenkin joitain vaikeuksia. Palvelin ei tiedä, miten vastata kaikkiin mahdollisiin pyyntöihin, joten sen on tehtävä arvauksia niiden päätösten tekemisen logiikan perusteella. Se ei voi tietää, onko verkkoselain käynnissä mobiililaitteella vai onko pyydetyn asiakirjan tarkoitus lähettää suoraan tulostimelle, ellei sitä kerrota. On myös yksityisyysongelmia, koska palvelinlähtöinen menetelmä odottaa pyynnön lähettävän sille tietoja pyynnön esittäneestä käyttäjästä.
Toinen menetelmä tunnetaan agenttivetoisena sisällöneuvotteluna. Tässä käyttäjä pyytää palvelinta ja palvelin lähettää takaisin luettelon mahdollisista vaihtoehdoista, jos sellaisia on. Valinta tehdään joko automaattisesti käytettävissä olevien selain- tai käyttöympäristöasetusten perusteella tai manuaalisesti HTML -muodossa esitettyjen vaihtoehtojen muodossa. Agenttivetoisen vaihtoehdon ensisijainen haittapuoli on useat pyynnöt palvelimelle parhaan mahdollisen sisällön saamiseksi. Kun välityspalvelin välittää välimuistipyyntöjä palvelimelle, joka käyttää agenttipohjaista neuvottelua, se voi kuitenkin toimittaa asianmukaisen sisällön välityspalvelimen takana oleville käyttäjille yhden välimuistipyynnön kautta.