Скажімо, ви йдете до стоматолога, щоб витягнути зуб.
Коли портьє запитує у вас своє ім’я, це інформація, яка їм потрібна для початку зустрічі. У цьому прикладі ваше ім’я - це контекстна інформація . Тож у контексті відвідування стоматолога вам потрібно вказати своє ім’я, щоб витягнути зуб.
Тепер скажімо, що ви заходите до банку.
У банку ви просите зняти 100 доларів. Постачальник повинен встановити вашу особу, перш ніж віддавати гроші, тому вам, мабуть, доведеться показати їм посвідчення водія або проведіть пальцевою карткою банкомата та ввести свій PIN-код. У будь-якому випадку, що ви надаєте, це контекст . Подавець використовує цю інформацію для переміщення транзакції вперед. Потім вони можуть запитати вас, з якого облікового запису ви хочете зняти. Коли ви відповідаєте "Мій ощадний рахунок" , це ще більше контексту .
Чим більше контексту ви надаєте, тим більше знань має інша сторона, щоб допомогти вирішити ваш запит. Іноді контекст є необов’язковим (наприклад, набираючи все більше слів у пошуковій системі Google, щоб отримати кращі результати), а іноді це потрібно (наприклад, надання вашого PIN-коду в банкоматі). Так чи інакше, це інформація, яка зазвичай допомагає зробити речі.
Тепер скажімо, що ви берете свої 100 доларів і купуєте квиток на літак, щоб летіти кудись тепло, поки рот заживає.
Ви приїжджаєте в приємне сонячне місце призначення, але ваша сумка не встигає. Він загублений десь в системі аеропорту. Отже, ви берете свій "квиток на претензію на багаж" (цей наклейку з штрих-кодом на ньому) в "Офіс втраченого багажу". Перше, що запитає людина за столом - це квиток з номером вашого багажу. Це приклад якогось необхідного контексту .
Але тоді людина, яка займається багажем, просить у вас більше інформації про ваш мішок, як, щоб вони могли його легше знайти. Вони запитують: " Якого кольору? Якого розміру? Чи мають колеса? Він твердий чи м'який? Хоча їм не обов'язково потрібні ці відомості, це допомагає звузити речі, якщо ви надаєте їх. Це зменшує Проблемна область. Це робить пошук набагато швидшим. Це необов'язковий контекст .
Ось цікава частина: для багатьох програмного забезпечення та API необхідний контекст зазвичай закінчується фактичними параметрами в підписі методу, а необов'язковий контекст йде десь в іншому місці, як гнучка карта-значення, яка може містити що завгодно (і може бути порожньою ) або в локальне сховище для потоків, де до нього можна отримати доступ за потреби.
Наведені вище приклади - із реального життя, але їх можна легко віднести до областей інформатики. Наприклад, заголовки HTTP містять контекстну інформацію. Кожен заголовок стосується інформації про зроблений запит. Або коли ви надсилаєте глобальний ідентифікатор транзакції як частина двофазного процесу фіксації , цей ідентифікатор транзакції є контекстом. Це допомагає менеджеру транзакцій координувати роботу, оскільки це інформація про загальну задачу.
Сподіваюся, що це допомагає.