Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Ранжування результату пошуку






При пошуку для кожного знайденого документа Яндекс обчислює величину релевантності (відповідності) змісту цього документа пошуковому запиту. Список знайдених документів перед видачею користувачеві сортується за цією величиною в порядку зменшення. Релевантність документа залежить від ряду факторів, у тому числі від частотних характеристик слів, які треба знайти, ваги слова або виразу, близькості пошукових слів у тексті документа один до одного тощо.

Користувач може вплинути на порядок сортування, використовуючи оператори ваги й уточнення запиту.

Завдання ваги слова або виразу застосовується для того, щоб збільшити релевантність документів, які містять " зважений" вираз. Синтаксис: слово: число або (пошуковий_вираз): число

За запитом 'пошукові механізми: 5' будуть знайдені ті ж документи, що і за запитом 'пошукові механізми'. Різниця полягає в тому, що зверху знайденого списку виявляться документи, де найчастіше зустрічається саме слово 'механізми'. Запит 'пошукові (механізми | машини | апарати): 5' рівнозначний запиту 'пошукові (механізми: 5 | машини: 5 | апарати: 5) '.

Завдання уточнюючого слова або виразу застосовується для того, щоб збільшити релеватність документів, які містять уточнюючий вираз. Синтаксис: < - слово або < - (уточнюючий_вираз).

За запитом 'комп'ютер < - телефон' будуть знайдені всі документи, що містять слово 'комп'ютер', при цьому першими будуть видані документи, що містять слово 'телефон'. Якщо ні в одному документі зі словом 'комп'ютер' немає слова 'телефон', результат запиту буде еквівалентний запиту 'комп'ютер'.

 

4.3 Служба WWW

Служба WWW (World Wide Web) - призначена для обміну гіпертекстової інформацією.

Проект був запропонований в 1989 році. У 1993 з'явився перший браузер.

WWW побудована за схемою " клієнт-сервер".

Браузер (Internet Explorer, Opera...) є мультипротокольним клієнтом і інтерпретатором HTML. І як типовий інтерпретатор, клієнт у залежності від команд (тегів) виконує різні функції. До кола цих функцій входить не тільки розміщення тексту на екрані, але обмін інформацією з сервером у міру аналізу отриманого HTML-тексту, що найбільш наочно відбувається при відображенні убудованих у текст графічних образів.

Сервер HTTP (Apeche, IIS...) обробляє запити клієнта на отримання файла (в найпростішому випадку).

 
 

Рисунок - Взаємодія клієнта і сервера по протоколу HTTP.

 

Спочатку служба WWW базувалася на трьох стандартах:

o HTML (HyperText Markup Lan-guage) - мова гіпертекстової розмітки документів;

o URL (Universal Resource Locator) - універсальний спосіб адресації ресурсів у мережі;

o HTTP (HyperText Transfer Protocol) - протокол обміну гіпертекстової інформацією.

Пізніше додали:

o CGI (Common Gateway Interface) - універсальний інтерфейс шлюзів. Створений для взаємодії HTTP - сервера з іншими програмами, встановленими на сервері (наприклад, СУБД).

 

Основу служби складає мережа WWW-серверів, на яких розміщені гіпертекстові документи, об'єднані перехресними посиланнями. WWW-браузер (WWW-клієнт) послідовно зчитує документи з різних серверів. При цьому частини одного документа можуть зберігатися на різних серверах. WWW-браузер самостійно аналізує гіпертекстовий документ і формує запити на отримання необхідного фрагмента з необхідного сервера. Таким чином, з'являється можливість організовувати величезні сховища структурованої інформації, пошук і оновлення якої здійснюється з мінімальними витратами, крім цього відсутня необхідність в дублюванні документів. Саме з початком використання служби WWW значно спростився пошук і використання інформації.

Основним форматом для подання гіпертекстових документів є HTML. Опис цього формату наведено нижче.

Для обміну інформацією між WWW-серверами і клієнтами використовується протокол HTTP.

4.4 Протокол HTTP

Перший документ (але не стандарт) - RFC1945 (Hypertext Transfer Protocol - HTTP/1.0 T. Berners-Lee, R. Fielding, H. Frystyk May 1996)

Остання версія - RFC2616 (Hypertext Transfer Protocol - HTTP/1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee June 1999)

Hypertext Transfer Protocol - протокол передачі гіпертексту, протокол високого рівня (а саме, рівня додатків). Використовується службою WWW для передачі Web-сторінок.

Протокол HTTP визначає запит-відповідь спосіб взаємодії між програмою-клієнтом і програмою-сервером в рамках технології World Wide Web. Нижче наведено приклади запиту клієнта і відповіді сервера:

Лістинг запиту і відповіді HTTP

Встановлення з’єднання

Connecting to ipm.kstu.ru...
Connected to ipm.kstu.ru [195.208.44.20]

Запит клієнта

GET /internet/index.php HTTP/1.1 - (запрос файла и указание протокола HTTP/1.1)
Connection: close - (закрыть соединение после отправки файла)
Host: ipm.kstu.ru - (указание адреса сервера)
Accept: */* - (предпочтение типов данных)
Cache-Control: no-cache - (не кешировать)
Referer: https://ipm.kstu.ru/internet/ - (от куда пришел клиент)
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) - (название программы клиента)

Відповідь сервера
HTTP/1.0 200 OK - (какой протокол используется, 200 - означает, что файл найден)
Date: Wed, 23 Oct 2002 08: 32: 31 GMT - (дата и время ответа)
Server: Apache/1.3.26 (Unix) PHP/4.1.2 rus/PL30.15 - (название, версия и модули http-сервера)
X-Powered-By: PHP/4.1.2 - (чем создана страница)
Connection: close - (закрыть соединение после получения файла)
Content-Type: text/html; charset=windows-1251 - (тип данных html, кодировка windows-1251)

Далі йде вміст файлу (тіло запиту).

Робота по протоколу HTTP відбувається наступним чином: програма-клієнт встановлює TCP-з'єднання з сервером (стандартний номер порту-80) і видає йому HTTP-запит. Сервер обробляє цей запит і видає HTTP-відповідь клієнту.

HTTP-запит складається з заголовка запиту і тіла запиту, розділених символом нового рядка. Тіло запиту може бути відсутнім.

Тема запиту складається з головної (першої) рядка запиту і наступних рядків, уточнюючих запит у головній рядку. Наступні рядки також можуть бути відсутні.

Запит у головній рядку складається з трьох частин, розділених пробілами:

1) Метод (інакше кажучи, команда HTTP):
GET - метод GET служить для одержання будь-якої інформації, відповідно URI-запиту.

HEAD - запит заголовка документа. Відрізняється від GET тим, що видається тільки заголовок запиту з інформацією про документ. Сам документ не видається.

POST - цей метод застосовується для передачі даних CGI-скриптів. Самі дані випливають у наступних рядках запиту у вигляді параметрів.

PUT - помістити документ на сервері. Запит з цим методом має тіло, в якому передається сам документ.

DELETE - використовується для видалення ресурсів, ідентифікованих за допомогою URI-запиту

2) Ресурс - це шлях до певного файлу на сервері (називається URI), який клієнт хоче отримати (або розмістити - для методу PUT). Якщо ресурс - просто якийсь файл для зчитування, сервер повинен за цим запитом видати його в тілі відповіді. Якщо ж це шлях до якого-небудь CGI-скрипту, то сервер запускає скрипт і повертає результат його виконання. До речі, завдяки такій уніфікації ресурсів для клієнта практично байдуже, що він являє собою на сервері.

3) Версия протокола - версия протокола HTTP, з якою працює клієнтська програма.

Рядки після головної рядка запиту мають наступний формат:

 

Параметр: значення.

Таким чином, задаються параметри запиту. Це є необов'язковим, всі рядки після головної рядка запиту можуть бути відсутні; в цьому випадку сервер приймає їх значення за замовчуванням або за результатами попереднього запиту (при роботі в режимі Keep-Alive).

 

Деякі параметри HTTP-запиту:

Connection (соединение) - може приймати значення Keep-Alive і close. Keep-Alive (" залишити в живих") означає, що після видачі даного документа з'єднання з сервером не розривається, і можна видавати ще запити. Більшість браузерів працюють саме в режимі Keep-Alive, так як він дозволяє за одне з'єднання з сервером " завантажити" html-сторінку і малюнки до неї. Будучи одного разу встановленим, режим Keep-Alive зберігається до першої помилки або до явного вказівки в черговому запиті Connection: close.

close (" закрити") - з'єднання закривається після відповіді на цей запит.

User-Agent - значенням є " кодове позначення" браузера, наприклад:

 

Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)

Accept - список підтримуваних браузерів типів вмісту в порядку їх переваги даними браузером, наприклад:

 

Accept: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / *

Це, очевидно, потрібно для випадку, коли сервер може видавати один і той же документ в різних форматах.

Значення цього параметра використовується в основному CGI-скриптами для формування відповіді, адаптованого для даного браузера.

Referer - URL, з якого перейшли на цей ресурс.

Host - ім'я хоста, з якого запитується ресурс. Корисно, якщо на сервері є декілька віртуальних серверів під одним IP-адресою. В цьому випадку ім'я віртуального сервера визначається по цьому полю.

Accept-Language - мова, яка підтримується. Має значення для сервера, який може видавати один і той же документ в різних мовних версіях.

Формат HTTP-відповіді:

Формат відповіді дуже схожий на формат запиту: він також має заголовок і тіло, розділене нового рядка.

Заголовок також складається з основної рядки і рядків параметрів, але формат основний рядка відрізняється від такої в заголовку запиту.

Основна рядок запиту складається з 3-х полів, розділених пробілами:

Версія протоколу - аналогічний відповідному параметру запиту.

Код повернення (помилки, стану) - кодове позначення " успішності" виконання запиту.

Наприклад, код 200 означає " все нормально" (OK).

Значення кодів повернення по першій цифрі:

1xx: Інформаційний - Не використовується, але зарезервований для використання в майбутньому

2хх: Успіх - Запит був цілком отриманий, зрозумілий, і прийнятий до обробки.

3xx: Перенаправлення - Клієнту варто почати подальші дії для успішного виконання запиту. Необхідна додаткова дія іноді може бути виконано клієнтом без взаємодії з користувачем, але настійно рекомендується, щоб це мало місце тільки в тих випадках, коли метод, що використовується в запиті байдужий (GET або HEAD).

4xx: Помилка клієнта - Запит, що містить неправильні синтаксичні конструкції, не може бути успішно виконаний. Клас 4xx призначений для опису тих випадків, коли помилка була допущена з боку клієнта. Якщо клієнт ще не завершив запит, коли він отримав відповідь із Статус-Кодом-4xx, він повинен негайно припинити передачу даних серверу. Даний тип Статус-Кодів застосуємо для будь-яких методів, що вживаються в запиті.

5xx: Помилка Сервера - Сервер не зміг дати відповідь на коректно поставлений запит. У цих випадках сервер або знає, що він допустив помилку, або не здатний обробити запит. За винятком відповідей на запити HEAD, сервер посилає опис помилкової ситуації і те, чи є цей стан тимчасовим або постійним, в Зміст-Відповіді.Даний тип Статус-Кодів застосуємо для будь-яких методів, що вживаються в запиті.

Найбільш часто зустрічаються:

" 200"; OK - документ відправлений.

" 404"; Not Found - документ не знайдений (помилка URL), клієнт повинен перевірити правильність написання URL, якщо не допомагає, значить, документ вже видалений.

" 500 "; Internal Server Error - внутрішня помилка сервера, клієнт виправити не може, тільки адміністратор сервера.

Словесний опис помилки - " розшифровка" попереднього коду. Наприклад, для 200 це OK, для 500 - Internal Server Error.

Таблиця кодів повернення

Код Назва Опис
  Продовжуйте Клієнт повинен продовжувати передачу запиту.
  Перемикання протоколів Сервер пропонує змінити протокол на вказаний в полі заголовка відгуку Update. Зазвичай цю пропозицію про перехід на більш нову версію HTTP.
  Відгук міг застаріти Відгук є застарілим (використовується в заголовку Warning).
  Оновлення не вдалось Відгук від кешу не є свіжим, т. к. спроба оновити його закінчилася невдачею (використовується в заголовку Warning).
  Розрив з’єднання Кеш був навмисне від'єднаний від решти мережі на деякий час (використовується в заголовку Warning).
  Евристичне застарівання Кеш евристично вибрав період оновлення, більший 24 годин, і вік відгуку більше 24 годин (використовується в заголовку Warning).
  Різні попередження Додаткові попередження, не містяться в цьому переліку (використовується в заголовку Warning).
  OK Запит був успішно оброблений. Вміст відгуку залежить від типу запиту.
  Створено Запит був успішно оброблений і в результаті був створений новий ресурс. Його URI вказаний в полі заголовка відгуку Location.
  Прийнято Запит був прийнятий, і його обробка почалася іншим асинхронним процесом, тому сервер не зможе повідомити про її завершення.
  Неавторитетна інформація Повертається метаінформація отримана не від сервера її походження, а з локальної копії.
  Немає вмісту Сервер виконав запит, але йому нічого повертати клієнту. Браузер не повинен змінювати відображення документа.
  Скидання вмісту Сервер виконав запит, і оглядач повинен скинути відображення документа.
  Частковий вміст Сервер виконав частковий запит GET для ресурсу.
  Застосовано перетворення Застосовано перетворення, що змінило кодування або тип MIME відгуку (використовується в заголовку Warning).
  Різні наполегливі попередження Додаткові попередження, не містяться в цьому переліку (використовується в заголовку Warning).
  Декілька варіантів Запитаний ресурс має кілька подань, і клієнт повинен вибрати одну з них.
  Ресурс перенесений Запитаний ресурс змінив свій URI. Його новий URI вказаний в полі заголовка відгуку Location.
  Знайдено Запитаний ресурс тимчасово змінив свій URI.
  Дивись інше Відгук на даний запит може бути знайдений під іншим URI, зазначеним у поле заголовка відгуку Location.
  Не змінено Клієнт виконав умовний запит GET, доступ дозволений, але документ не був змінений.
  Використовуйте проксі Доступ до запрошенням ресурсу можливий тільки через проксі-сервер, зазначений у полі заголовка відгуку Location.
  зарезервовано  
  Тимчасове перенаправлення Запитаний ресурс тимчасово знаходиться під іншим URI, зазначеному в полі заголовка відгуку Location.
  Невірний запит Запит не був зрозумілий сервером через його невірного синтаксису.
  Немає права доступу Запит вимагає авторизації доступу, тип якої вказано в поле заголовка відгуку WWW-Authenticate.
  Потрібен платіж Зарезервовано для наступних версій HTTP.
  Заборонено Сервер зрозумів запит, але відмовився його виконувати.
  Не знайдено Ресурс, заданий в URI запиті, не знайдений.
  Неприпустимий метод Даний тип запиту не застосуємо до ресурсу, заданому в URI запиту.
  Неприйнятно Ресурс, заданий в URI запиту, може генерувати тільки відгуки, не прийнятні для клієнта.
  Прокси вимагає авторизації доступу Проксі-сервер вимагає авторизації доступу, тип якої вказано в поле заголовка відгуку Proxy-Authenticate.
  Таймаут запиту Клієнт не посланий жодного запиту протягом відведеного йому інтервалу.
  Конфлікт Запит не може бути виконаний через конфлікт з поточним станом ресурсу.
  Ресурс зник Запитаного ресурсу більше немає на сервері, і сервер не знає його нового URI.
  Потрібна довжина запиту У запиті не задано поле заголовка Content-Length.
  Умова хибна Умова, задана в заголовку умовного запиту, не може бути виконана.
  Занадто довге тіло запиту Тіло запиту довше, ніж допускає сервер.
  Занадто довге URI запиту URI запиту довше, ніж допускає сервер.
  Не підтримуємий тип пристрою Формат тіла запиту не підтримується даними ресурсом для даного типу запиту.
  Запитаний діапазон порожній Запитаний ресурс не містить значень в діапазоні, заданому в поле заголовка запиту Range.
  Припущення не виправдалося Припущення, вказане в полі заголовка запиту Expect, відкинуто сервером.
  Внутрішня помилка сервера Запит не виконаний через несподівану помилку сервера.
  Не реалізовано Сервер не підтримує даний тип запитів.
  Поганий шлюз Сервер, який виступає в ролі шлюзу або проксі-сервера, отримав невірний відгук від наступного сервера.
  Служба недоступна Сервер тимчасово не може виконати запит через перевантаження.
  Таймаут шлюза Сервер, який виступає в ролі шлюзу або проксі-сервера, не отримав своєчасного відгуку від наступного сервера.
  Версія HTTP не подтримується Сервер не підтримує версію HTTP, зазначену в заголовку запиту.

 

Деякі параметри http-відповіді:

Connection - ця відповідь аналогічний відповідному параметру запиту.

Якщо сервер не підтримує Keep-Alive (є й такі сервери), то значення Connection у відповіді завжди close.

Content-Type - містить позначення типу вмісту відповіді в MIME.

В залежності від значення Content-Type браузер сприймає відповідь як HTML-сторінку, картинку gif або jpeg, як файл, який треба зберегти на диску, або як-небудь ще і робить відповідні дії.

 

Деякі типи вмісту:

 

text / html - текст у форматі HTML (веб-сторінка);

text / plain - простий текст (аналогічний " блокнотовскому");

image / jpeg - картинка у форматі JPEG;

image / gif - те ж, у форматі GIF;

Також може передавати кодування для текстових даних.

Наприклад:

charset=windows-1251

charset=koi8-rus

Content-Length - довжина вмісту відповіді в байтах (розмір файла).

Last-Modified - дата і час останньої зміни документа.

Під’єднання до HTTP за допомогою Telnet

Під'єднатись до командного порту HTTP (80) і запитати файл robots.txt:


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.015 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал