Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бірдей URI-де бірнеше құжатты ұсыну
Serving multiple documents at the same URI
Мазмұнды келіссөздер – бұл HTTP-нің құрамында анықталған, бір URI арқылы құжаттың әртүрлі нұсқаларын (немесе жалпы алғанда, ресурстың түрлерін) ұсынуға мүмкіндік беретін механизмдер. Бұл механизмнің арқасында пайдаланушы агенттері өз мүмкіндіктеріне ең қолайлы нұсқаны таңдай алады. Бұл механизмнің классикалық мысалы – GIF немесе PNG форматында суретті ұсыну. Егер браузер PNG суреттерін көрсетпесе (мысалы, MS Internet Explorer 4), онда оған GIF нұсқасы ұсынылады. Ресурс бірнеше түрлі түрде болуы мүмкін; мысалы, ол әртүрлі тілдерде немесе әртүрлі медиа түрлерінде ұсынылуы мүмкін. Ең қолайлы нұсқаны таңдаудың бір жолы – пайдаланушыға индекс бетін ұсынып, оған қажетті нұсқаны өзі таңдауға мүмкіндік беру. Дегенмен, таңдауды кейбір критерийлерге сүйеніп автоматтандыру да мүмкін.
Content negotiation refers to mechanisms defined as a part of HTTP that make it possible to serve different versions of a document (or more generally, representations of a resource) at the same URI, so that user agents can specify which version fits their capabilities the best. One classical use of this mechanism is to serve an image in GIF or PNG format, so that a browser that cannot display PNG images (e. g. MS Internet Explorer 4) will be served the GIF version. A resource may be available in several different representations; for example, it might be available in different languages or different media types. One way of selecting the most appropriate choice is to give the user an index page and let them select the most appropriate choice; however it is often possible to automate the choice based on some selection criteria.
Механизмдер
HTTP бірнеше мазмұн келіссөздерін жүзеге асыру механизмдерін қамтиды, олардың ішінде: сервер басқаратын (немесе проактивті), клиент басқаратын (немесе реактивті), ашық және/немесе олардың гибридтік комбинациялары.
HTTP provides for several different content negotiation mechanisms including: server driven (or proactive), agent driven (or reactive), transparent, and/or hybrid combinations thereof.
Агенттікті басқару
Агенттік басқару немесе реактивті мазмұн келіссөздері пайдаланушы агентіндегі алгоритмдер арқылы іске асырылады, олар қолжетімді нұсқалардың арасынан таңдау жасайды. Бұл көбінесе сервер ұсынған нұсқалар мен олар туралы метадеректер тізіміне сүйеніп орындалады. Қалай жұмыс істейтінін қысқаша түсіндірсек, пайдаланушы агенті серверге сұрау жібергенде, сервер пайдаланушы агентіне қандай нұсқалар бар екенін, сондай-ақ әрбір нұсқа туралы қандай метадеректер бар екенін (мысалы, мазмұн түрі, сапасы, тілі және т.б.) хабарлайды. Пайдаланушы агенті содан кейін таңдалған нұсқаға арналған нақты URL-ге сұрауды қайта жібереді. Бұл пайдаланушы агентімен автоматты түрде таңдалуы мүмкін, немесе пайдаланушы агенті пайдаланушыға таңдау опцияларын ұсынады, ал пайдаланушы тікелей таңдау жасай алады. Нақтырақ айтқанда, сервер 300 «Көптеген таңдаулар» немесе 406 «Қабылдауға болмайды» жауабын қайтарады (сервер басқарған жағдайда, пайдаланушы агентінің қабылдау критерийлері берілген, бірақ сервер автоматты түрде таңдау жасай алмайды). Өкінішке орай, HTTP нұсқалар мен метадеректер тізімінің форматын және таңдау механизмдерін нақты белгілемейді.
Agent driven or reactive content negotiation is performed by algorithms in the user agent which choose among the possible variant representations. This is commonly performed based on a server provided list of representations and metadata about them. To summarize how this works, when a user agent submits a request to a server, the server informs the user agent which representations it has available as well as any metadata it has about each representation (e. g., content type, quality, language, etc.). The user agent then resubmits the request to a specific URL for the chosen representation. This can be automatically chosen by the user agent or the user agent can present the user with the choices and the user can directly choose such. More precisely, the server responds with either 300 Multiple Choices or 406 Not Acceptable (when server driven, user agent acceptance criteria are provided but the server cannot automatically make a selection). Unfortunately HTTP leaves the format of the list of representations and metadata along with selection mechanisms unspecified.