3.1 Общий вид http-сообщения

Каждый http-запрос (запрос по протоколу http) имеет определенную структуру. А самое лучшее — это то, что он представляет из себя текстовый файл, вполне читабельный даже для неподготовленного человека.

Сообщение состоит из трех частей. Первой строкой идет так называемая starting line, которая и определяет тип сообщения. Затем идут параметры, которые еще называют заголовками, headers. Ну и в самом конце идет тело сообщения.

И как же определить, где закончились заголовки и началось тело сообщения? А тут все просто: заголовки и тело сообщения разделены пустой строкой. Вот как только увидели пустую строку в http-сообщении, так сразу после нее тело сообщения и идет.

3.2 Starting line

Вид стартовой строки стандартизирован и задается шаблоном:


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

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


        GET/me HTTP/1.0
   Host: javarush.com
    

В качестве ответа сервер скорее всего пришлет:


        HTTP/1.0 200 OK
   текст страницы…
    

3.3 Headers

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

Примеры таких заголовков:


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

Каждый заголовок представляет из себя пару имя-значение, которые отделяются двоеточием, прямо как в JSON. Более подробно мы разберём их в следующих лекциях.