Кіріспе

Бірдей URI-де бірнеше құжатты ұсыну

Мазмұнды келіссөздер – бұл HTTP-нің құрамында анықталған, бір URI арқылы құжаттың әртүрлі нұсқаларын (немесе жалпы алғанда, ресурстың түрлерін) ұсынуға мүмкіндік беретін механизмдер. Бұл механизмнің арқасында пайдаланушы агенттері өз мүмкіндіктеріне ең қолайлы нұсқаны таңдай алады. Бұл механизмнің классикалық мысалы – GIF немесе PNG форматында суретті ұсыну. Егер браузер PNG суреттерін көрсетпесе (мысалы, MS Internet Explorer 4), онда оған GIF нұсқасы ұсынылады. Ресурс бірнеше түрлі түрде болуы мүмкін; мысалы, ол әртүрлі тілдерде немесе әртүрлі медиа түрлерінде ұсынылуы мүмкін. Ең қолайлы нұсқаны таңдаудың бір жолы – пайдаланушыға индекс бетін ұсынып, оған қажетті нұсқаны өзі таңдауға мүмкіндік беру. Дегенмен, таңдауды кейбір критерийлерге сүйеніп автоматтандыру да мүмкін.

Механизмдер

HTTP бірнеше мазмұн келіссөздерін жүзеге асыру механизмдерін қамтиды, олардың ішінде: сервер басқаратын (немесе проактивті), клиент басқаратын (немесе реактивті), ашық және/немесе олардың гибридтік комбинациялары.

Агенттікті басқару

Агенттік басқару немесе реактивті мазмұн келіссөздері пайдаланушы агентіндегі алгоритмдер арқылы іске асырылады, олар қолжетімді нұсқалардың арасынан таңдау жасайды. Бұл көбінесе сервер ұсынған нұсқалар мен олар туралы метадеректер тізіміне сүйеніп орындалады. Қалай жұмыс істейтінін қысқаша түсіндірсек, пайдаланушы агенті серверге сұрау жібергенде, сервер пайдаланушы агентіне қандай нұсқалар бар екенін, сондай-ақ әрбір нұсқа туралы қандай метадеректер бар екенін (мысалы, мазмұн түрі, сапасы, тілі және т.б.) хабарлайды. Пайдаланушы агенті содан кейін таңдалған нұсқаға арналған нақты URL-ге сұрауды қайта жібереді. Бұл пайдаланушы агентімен автоматты түрде таңдалуы мүмкін, немесе пайдаланушы агенті пайдаланушыға таңдау опцияларын ұсынады, ал пайдаланушы тікелей таңдау жасай алады. Нақтырақ айтқанда, сервер 300 «Көптеген таңдаулар» немесе 406 «Қабылдауға болмайды» жауабын қайтарады (сервер басқарған жағдайда, пайдаланушы агентінің қабылдау критерийлері берілген, бірақ сервер автоматты түрде таңдау жасай алмайды). Өкінішке орай, HTTP нұсқалар мен метадеректер тізімінің форматын және таңдау механизмдерін нақты белгілемейді.