1. Загальний вигляд http-повідомлення

Кожний http-запит (запит за протоколом http) має певну структуру. А найкраще в цьому те, що він є текстовим файлом, який легко прочитати навіть непідготовленій людині.

Повідомлення складається із трьох частин. Першим рядком йде так звана starting line, яка визначає тип повідомлення. Потім йдуть параметри, які ще називають заголовками, headers. Ну і насамкінець іде тіло повідомлення.

Як визначити, де закінчилися заголовки і почалося тіло повідомлення? Тут все просто: заголовки та тіло повідомлення розділені порожнім рядком. Ось як тільки побачиш порожній рядок у http-повідомленні, так одразу після нього йде тіло повідомлення.

2. Starting line

Вид стартового рядка стандартизований і встановлюється шаблоном:


        Метод URI HTTP/Версія
    

Для кращого розуміння наведемо кілька прикладів. Персональна сторінка користувача JavaRush віддається за посиланням https://javarush.com/me


        GET/me HTTP/1.0
   Host: javarush.com
    

Як відповідь сервер швидше за все надішле:


        HTTP/1.0 200 OK
   <html>текст сторінки…
    

3.3 Headers

Заголовки називаються заголовками, оскільки вони йдуть на чолі http-повідомлення. Можливо, коректніше було б називати їх службовими параметрами. Вони потрібні для того, щоб http-клієнт та http-сервер краще розуміли, як їм спілкуватися і як інтерпретувати отримані дані.

Приклади таких заголовків:


Content-Type: text/html;charset=windows-1251
Allow: GET,HEAD,OPTIONS
Content-Length: 1984

Кожен заголовок є парою ім'я-значення, які відокремлюються двокрапкою, прямо як у JSON. Докладніше ми розберемо їх у наступних лекціях.