HTTP заглавља
HTTP заглавља (енгл. HTTP Header, поља заглавља) су компоненте заглавља поруке захтева и одговора у Hypertext Transfer Protocol (ХТТП). Они дефинишу оперативне параметре једне HTTP трансакције.
Поља заглавља се преносе након захтева или одговора линије, прве линије поруке. Хедер поља су колоном предвојени парови име - вредност у формату низова чистог текста, обустављени повратком на почетак реда (ЦР) и спуштање за ред ниже (ЛФ) низа карактера. Крај поља заглавља указује празно поље, што је довело до преноса два узастопна ЦР-ЛФ пара. Дуги редови могу да се састоје од више линија, непрекидне линије су означене присуством простора (СП) или хоризонталним табулатором (ХТ) као првим карактером у следећој линији.[1] Неколико поља такође могу да садрже коментаре, што може да буде игнорисано од стране софтвера.[2] Унутрашњи низ поља је стандардизован од стране Internet Engineering Task Force (ИЕТФ) у RFC 2616 и другим ажурирањима и додатним документима, и мора да се спроводи од стране свих HTTP компатибилних протокол имлементација. Додатна имена поља и дозвољене вредности могу да буду дефинисане сваком апликацијом.
Стални регистар заглавља и спремишта привремених регистрација се одржава од стране ИАНА.
Многе вредности поља могу садржати квалитетан (q) пар кључне вредности, наводећи да користи тежину у корист преговора.[3]
Не постоје ограничења за име сваког поља заглавља или вредност или број заглавља у самом стандарду. Међутим већина сервера, клијената и прокси софтвера намеће нека ограничења због практичних и безбедносних разлога. На пример Apache 2.3 сервер условљава велићину сваког заглавља на величину од 8190 бајта, и може да буде највише 100 заглавља у појединачном захтеву.
Захтеви
[уреди | уреди извор]Име поља | Опис | Пример |
---|---|---|
Accept | врсте садржаја које су прихватљиве за одговор | Accept: text/plain |
Accept-Charset | група карактера који су прихватљиви | Accept-Charset: utf-8 |
Accept-Encoding | прихватљиве шеме за компресију (види HTTP компресија) | Accept-Encoding: gzip, deflate |
Accept-Language | прихватљиви људски језици за одговор | Accept-Language: en-US |
Accept-Datetime | прихватљива верзија у времену | Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT |
Authorization | потврда лозинка за HTTP аутентичност | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Cache-Control | користи се да назначи директиве које морају бити извршене од стране свих складишних механизама дуж ланца захтев/одговор | Cache-Control: no-cache |
Connection | коју врсту везе ће корисник - агент преферирати | Connection: keep-alive |
Cookie | HTTP колачићи претходно послати од стране сервера са Set-Cookie (испод) | Cookie: $Version=1; Skin=new; |
Content-Length | дужина тела захтева у октетима (8-бит бајтови) | Content-Length: 348 |
Content-MD5 | Base64-бинарних лозинки МД5 збира садржаја тела захтева | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Type | MIME врста тела захтева (коришћена са ПОСТ и ПУТ захтевима) | Content-Type: application/x-www-form-urlencoded |
Date | датум и време када је порука послата | Date: Tue, 15 Nov 1994 08:12:31 GMT |
Expect | указује да су одређена понашања сервера захтевана од стране клијената | Expect: 100-continue |
From | имејл адреса корисника прави захтев | From: user@example.com |
Host | Име домена сервера (за виртуелан хостинг) и ТЦП порт број на ком сервер слуша. Број портова може бити изостављен ако је порт стандардан порт за сервисне захтеве. Обавезан од ХТТП/1.1. Иако је име домена назначено као осетљиво на величину слова, није прецизирано да ли садржај хост поља треба тумачити на начин независан од величине слова, а у пракси неке имплементације виртуал хостинга тумаче садржај хост поља на начин независан од величине слова. | Host: en.wikipedia.org:80 Host: en.wikipedia.org |
If-Match | Изводи акцију само ако клијент добије ентитет који се поклапа са истим ентитетом на серверу. Ово је углавном за методе као ПУТ да самоажурира ресурсе ако нису били измењени од када их је корисник задње ажурирао. | If-Match: "737060cd8c284d8af7ad3082f209582d" |
If-Modified-Since | Дозвољава 304 није промењено да буде враћено ако је садржај непромењен | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
If-None-Match | Дозвољава 304 није промењено да буде враћено ако је садржај непромењен | If-None-Match: "737060cd8c284d8af7ad3082f209582d" |
If-Range | Ако је ентитет непромењен, пошаље му део (делове) који му недостају, иначе пошаље му цео
нов ентитет. |
If-Range: "737060cd8c284d8af7ad3082f209582d" |
If-Unmodified-Since | Пошаље одговор само ако ентитет није мењан неко одређено време. | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
Max-Forwards | Одређује број пута колико порука може бити прослеђена кроз проксије или преводилац протокола (Gateway). | Max-Forwards: 10 |
Origin | Иницира захтев за cross-origin resource sharing (CORS). Пита сервер за 'Access-Control-Allow-Origin'. CORS је механизам који дозвољава веб страни да направи XMLHttpRequests за други домен. | Origin: хттпс://wеб.арцхиве.орг/wеб/20151104123413/хттп://www.еxампле-социал-нетwорк.цом/}- |
Pragma | Убацује специфична заглавља која могу имати различите ефекте било где дуж ланца захтев - одговор. | Pragma: no-cache |
Proxy-Authorization | Одобрење лозинки за повезивање на прокси. | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Range | Захтева само део ентитета. Бајтови се броје од нуле. | Range: bytes=500-999 |
Referer | Ово је адреса претходне интернет странице са које је уследио линк до тренутно захтеване странице. Реч „реферрер“ је погрешно написана у RFC као и већина имплементација. | Referer: хттп://ен.wикипедиа.орг/wики/Маин_Паге}- |
ТЕ | Трансфер лозинки које је кориснички агент вољан да прихвати: могу да се користе исте вредности као за одговор заглавље Transfer-Encoding, плус "приколице" вредност (повезано са "комад" методом
преноса) да известе сервер да очекује да прими додатна заглавља ("приколице"), након последњег, нулте величине, комад. |
TE: trailers, deflate |
Upgrade | Пита сервер да надогради други протокол. | Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 |
User-Agent | Кориснички агент низ корисничког агента | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101Firefox/12.0 |
Via | Обавештава сервер проксија кроз које је захтев био послат. | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
Warning | Генерално упозорење о могућим проблемима са телом ентитета. | Warning: 199 Miscellaneous warning |
Уобичајна нестандарна заглавља захтева
[уреди | уреди извор]Нестандарна поља заглавља су била конвенцијално обележена префиксом -X испред имена поља. Међутим, ова конвенција је постала застарела у јуну 2012. због непријатности изазваних када су нестандарна заглавља постала стандардна. На пример X-Gzip и Gzip су сада оба подржана заглавља за компресоване HTTP захтеве и одговоре.
Име поља | Опис | Пример |
---|---|---|
X-Requested-With | Углавном се користи за идентификацију Ajax захтева. Већина JavaScript оквира шаље ово заглавље
са вредношћу XMLHttpRequest. |
X-Requested-With: XMLHttpRequest |
DNT | Захтева од интернет апликације да онемогући працење Ово је Мозилина верзија X-До-Нот-Трацк
заглавља (од Фирефоx 4.0 Бета 11 ). Сафари и ИЕ9 такодје имају подршку за ова заглавља. 7.марта 2011 нацрт предлога је предат ИЕТФ-у. W3Ц Трацкинг Протецтион Wоркинг Гроуп производи спецификацију. |
ДНТ: 1 (До Нот Трацк Енаблед)
ДНТ: 0 (До Нот Трацк Дисаблед) |
X-Форwардед-Фор | Де фацто стандард за утврдјивање ИП адресе клијента повезује се са сервером путем хттппрокси
сервера или лоад б |
X-Форwардед-Фор: цлиент1, проxy1, проxy2
X-Форwардед-Фор: 129.78.138.66, 129.78.64.103 |
X-Форwардед-Прото | Де фацто стандард за утврђивање порекла протокола хттп захтева, од када реверсе прокси (лоад
баланцер) може комуницирати са интернет сервером користећи хттп чак иако је захтев реверсе прокси серверу хттпс. |
X-Форwардед-Прото: хттпс |
Фронт-Енд-Хттпс | Нестандарно заглавље које користе Мицрософт апликације и лоад-балансери. | Фронт-Енд-Хттпс: он |
X-АТТ-ДевицеИд | Омогућава лакшу анализу од стране МакеМодел/Фирмwаре који се налази у Усер-Агент Стринг у
АТ&Т уређаја. |
x-атт-девицеид: МакеМодел/Фирмwаре |
X-Wап-Профиле | Линкови ка XМЛ датотекама на интернету са пуним описом и детаљима о уређају који се тренутно
повезује. На пример, на десној страни је XМЛ датотека за АТ&Т Самсунг Галаxy С2. |
x-wап-проДатотека: http://wap.samsungmobile.com/uaprof/SGH-I777.xml |
Проxy-Цоннецтион | Реализована као неразумевање хттп спецификација. Обично због грешака у реализацији раних хттп
верзија. Има потпуно исту функционалност као стандардни прикључак заглављу. |
Проxy-Цоннецтион: кееп-аливе |
Одговори
[уреди | уреди извор]ИМЕ ПОЉА | ОПИС | ПРИМЕР |
Аццесс-Цонтрол-Аллоw-Оригин | Наводи који интернет сајтови могу да приступе цросс-оригин ресоурце схаринг | Аццесс-Цонтрол-Аллоw-Оригин: * |
Аццепт-Рангес | Које врсте парсијалних опсега садрзаја сервер подржава | Аццепт-Рангес: бyтес |
Аге | Доба у које је објекат био у проxy цацхе у секунди | Аге: 12 |
Аллоw | Важеће акције за одређени ресурс. Уоптебљва се за 405 метод Није допуштено. | Аллоw: ГЕТ, ХЕАД |
Цацхе-Цонтрол | Говори свим механизмима складиштења од сервера до корисника да ли може да се складишти овај
објекат. Мери се у секунди. |
Цацхе-Цонтрол: маx-аге=3600 |
Цоннецтион | Опције које су пожељне за повезивање. | Цоннецтион: цлосе |
Цонтент-Енцодинг | Тип лозинки који се користи за податке. Видети ХТТП компресију. | Цонтент-Енцодинг: гзип |
Цонтент-Лангуаге | Језик на коме је садржај. | Цонтент-Лангуаге: да |
Цонтент-Ленгтх | Дужина тела одговора у октетима. (8-бит бајта) | Цонтент-Ленгтх: 348 |
Цонтент-Лоцатион | Алтернативна локација за враћене податке. | Цонтент-Лоцатион: /индеx.хтм |
Цонтент-МД5 | База 64 бинарних лозинки МД5 збир садржаја одговора. | Цонтент-МД5: Q2хлY2сгСW50ЗWдyаXР5ИQ== |
Цонтент-Диспоситион | Могусност да изађе "Филе Доwнлоад" оквир за дијалог за познати МИМЕ са бинарним форматом или
предлог за име датотеке за динамички садрзај. Наводници су неопходни за специјалне карактере. |
Цонтент-Диспоситион: аттацхмент; филенаме="фнаме.еxт" |
Цонтент-Ранге | Где у пуном телу поруке овај део припада. | Цонтент-Ранге: бyтес 21010-47021/47022 |
Цонтент-Тyпе | МИМЕ врста овог садржаја. | Цонтент-Тyпе: теxт/хтмл; цхарсет=утф-8 |
Дате | Датум и време када је порука била послата. | Дате: Туе, 15 Нов 1994 08:12:31 ГМТ |
ЕТаг | Идентификатор за одређену верзију извора, често за функције за сажимање. | ЕТаг: "737060цд8ц284д8аф7ад3082ф209582д" |
Еxпирес | Даје датум/време после кога се одговор сматра застарелим. | Еxпирес: Тху, 01 Дец 1994 16:00:00 ГМТ |
Ласт-Модифиед | Последње промењен датум за тражени објекат у RFC 2822 формату. | Ласт-Модифиед: Туе, 15 Нов 1994 12:45:26 ГМТ |
Линк | Користи се да изрази откуцану везу са другим извором , где је тип односа дефинисан од стране | Линк: </феед>; рел="алтернате" |
Лоцатион | Користи се у преусмеравању, или када је направљен нови извор. | Лоцатион: http://www.w3.org/pub/WWW/People.html |
П3П | Ово заглавље је требало да постави П3П политику у форми П3П:ЦП="yоур_цомпацт_полицy". Међутим,
П3П нису подржани, вецина претраживача их није никада у потпуности имплементирала, доста интернет сајтова поставља ово заглавље са лажним текстом политике, то је било довољно да превари претраживаче за постојање П3П политике и да дозволу за колачиће треце врсте(колачићи постављени са различитим доменом од оног који је показан у аддресс бар-у). |
П3П: ЦП="Тхис ис нот а П3П полицy! Сее |
Прагма | Имплементира специфична заглавља која могу бити било где дуж ланца захтев - одговор. | Прагма: но-цацхе |
Проxy-Аутхентицате | Захтева проверу идентитета за приступ проксију. | Проxy-Аутхентицате: Басиц |
Рефресх | Користи се у преусмеравању или кад је нови ресурс креиран.Овај рефресх преусмерава после
5 секунди. Ово је власничко, нестандарно додатно заглавље уведено од стране Нетсцапе -а, и подрзавају га многи претраживачи. |
Рефресх: 5; урл=http://www.w3.org/pub/WWW/People.html |
Ретрy-Афтер | Ако је неки ентитет привремено недоступан, ово указује кориснику да проба поново после
извесног времена. |
Ретрy-Афтер: 120 |
Сервер | Име сервера | Сервер: Апацхе/2.4.1 (Униx) |
Сет-Цоокие | Хттп колачић | Сет-Цоокие: УсерИД=ЈохнДое; Маx-Аге=3600; Версион=1 |
Статус | Хттп статус одговора. | Статус: 200 ОК |
Стрицт-Транспорт-Сецуритy | ХСТС политика која обавештава хттп корисника колико дуго да складишти само хттпс политику и
да ли ово укљуцује поддомене. |
Стрицт-Транспорт Сецуритy: маx-аге=16070400; инцлудеСубДомаинс |
Траилер | Траилер поље опште вредности указује да је дат сет поља заглавља представљен у траилер-у
поруке лозинке са цхункед трансфер-цодинг. (То је механизам трансфера података у верзији 1.1 Хттп у ком се подаци шаљу у серији "цхункс"-ова.) |
Траилер: Маx-Форwардс |
Трансфер-Енцодинг | Форма лозинки која се користи за безбедан трансфер ентитета до корисника.Тренутно дефинисане
методе су: цхункед, компресија, дефлате ("злиб" формат wитх "дефлате" компресијом ), гзип, идентитет. |
Трансфер-Енцодинг:цхункед |
Варy | Показује низводним проксијима како да подесе будућа заглавља захтева да одлучи да ли да се
складиштен одовор користи уместо захтевања новог који је пореклом са сервера. |
Варy: * |
Виа | Обавештава корисника о проxy-ју преко које је одговор послат. | Виа: 1.0 фред, 1.1 еxампле.цом (Апацхе/1.1) |
Wарнинг | Опште упозорење о могуцим проблемима са телом ентитета. | Wарнинг: 199 Мисцелланеоус wарнинг |
WWW-Аутхентицате | Указује на шему идентификације која треба да се користи за приступ захтеваном ентитету. | WWW-Аутхентицате: Басиц |
Уобицајна нестандардна заглавља одговора
[уреди | уреди извор]ИМЕ ПОЉА | ОПИС | ПРИМЕР |
X-Фраме-Оптионс | Цлицкјацкинг заштита: "денy" - нема враћања унутар оквира, "самеоригин" - нема враћања ако
се порекло не поклапа. |
X-Фраме-Оптионс: денy |
X-XСС-Протецтион | Цросс-сите сцриптинг (XСС) филтер (врста слабости у безбедности рацунара која се типично налази
у интернет апликацијама) |
X-XСС-Протецтион: 1; моде=блоцк |
Цонтент-Сецуритy-Полицy,
X-Цонтент-Сецуритy-Полицy, X-WебКит-ЦСП |
Цонтент Сецуритy Полицy дефиниција. (то је концепт безбедности рачунара, да спречи Цросс-сите
сцриптинг и повезане нападе) |
X-WебКит-ЦСП: дефаулт-срц 'селф' |
X-Цонтент-Тyпе-Оптионс | Самодефинисана вредност, "носнифф", спречава Интернет Еxплорер од МИМЕ шуњања одговора од
декларисаног типа садржаја. Ово важи и за Гоогле Цхроме, када се скидају додаци. |
X-Цонтент-Тyпе-Оптионс: носнифф |
X-Поwеред-Бy | Специфицира технологију (као АСП.НЕТ, ПХП, ЈБосс) која подржава апликацију (верзије детаља су
често у X-Рунтиме, X-Версион, или X-АспНет-Версион) |
X-Поwеред-Бy: ПХП/5.4.0 |
X-УА-Цомпатибле | Препоручује жељени мотор враћања (често бацкwард-цомпатибилитy моде) који треба да се користи
да се прикаже садржај. Такође се користи да активира Цхроме Фраме у Интернет Еxплорер-у. |
X-УА-Цомпатибле: ИЕ=ЕмулатеИЕ7
X-УА-Цомпатибле: ИЕ=едге X-УА-Цомпатибле: Цхроме=1 |
Ефекти изабраних поља заглавља
[уреди | уреди извор]Избегавање складистења
[уреди | уреди извор]Ако интернет сервер одговара са Цацхе-Цонтрол: но-цацхе интернет претраживач или други систем складиштења (средишњи проксији) не сме да користи одговор да задовољи наредне одговоре без претходне провере са оригиналног сервера (овај процес се назива валидација). Ово поље заглавља је део ХТТП верзије 1.1 , и неки претраживачи и складишта га игноришу. Може да буде симулиран постављањем Еxпирес ХТТП верзија 1.0 вредности поља заглавља у време које је раније од времена одзива.
Обратите пажњу да но-цацхе не упућује претраживаче или проксије о томе да ли да складишти или не складишти садржај. То само говори да претраживачи и проксији треба да провере складиштени садржај са сервером пре него што га употребе (то се ради коришћењем иф-Модифиед-Синце, Иф-Унмодифиед-Синце, Иф-Матцх, Иф-Ноне-Матцх атрибута поменутих раније ). Слањем но-цацхе вредности налаже претраживачу или проксију да не користе садржаје складишта само на основу "критеријума свежине" садржаја складишта. Други уобичајен начин да се спречи приказивање старог садржаја без валидације је Цацхе-Цонтрол: маx-аге=0. Ово упућује корисничког агента да је садржај застарео и да треба да буде потврђен пре употребе.
Поље заглавља Цацхе-Цонтрол: но-сторе има за циљ да упути апликацију претраживача да примени најбоље напоре да га не напише на диск (тј. да га не кешира ).
Захтев да се ресурс не треба кеширати није гаранција да неће бити уписан на диску. Конкретно, ХТТП/1.1 дефиниција прави разлику између историјских магацина и складишта. Уколико корисник креће назад на претходну страницу претраживач вам може још увек приказивати страницу која је унешена на диску у историјском магацину. Ово је исправно понашање према спецификацији. Многи кориснички агенти показују различита понашања у учитавању страница са историјског магацина или кеша у зависности да ли је протокол ХТТП или ХТТПС.
Прагма: но-цацхе и Цацхе-Цонтрол: но-цацхе поље заглавља је ХТТП/1.0 намењено за употребу у заглављу захтева такодје. То је наћин да претраживач каже серверу и било ком средишњем складишту да зели нову верзију извора, а не да сервер говори претраживачу да не складишти ресурс. Прагма: но-цацхе је специфична имплементација , и неки кориснички агенти обраћају пажњу на ово заглавље у одговорима, али ХТТП/1.1 РФЦ посебно упозорава на ослањање на ово понашање.
Референце
[уреди | уреди извор]- ^ „ХТТП/1.1: Нотатионал Цонвентионс анд Генериц Граммар”. W3.орг. Приступљено 13. 3. 2012.
- ^ „ХТТП/1.1: Хеадер Фиелд Дефинитионс”. W3.орг. Приступљено 13. 3. 2012.
- ^ „РФЦ 2616 §3.9”. W3.орг. Приступљено 13. 3. 2012.
Спољашње везе
[уреди | уреди извор]
- RFC 4229: HTTP Header Field Registrations. December 2005 (contains a more complete list of HTTP headers)
- RFC 2616: IETF HTTP/1.1 RFC
- RFC 2965: IETF HTTP State Management Mechanism RFC
- HTTP/1.1: Header Field Definitions
- HTTP/1.1 headers from a web server point of view
- HTTP Request Header Viewer
- HTTP Response Header Viewer - Retrieves the HTTP response headers of any domain.
- HTTP Header Viewer with Google App Engine
- Internet Explorer and Custom HTTP Headers - EricLaw's IEInternals - Site Home - MSDN Blogs
- crwlr.net - HTTP Header index
- HTTP Header with Privacyinfo - Display your HTTP request and response headers