Найти тему

Сетевые запросы. Часть 2

Как понятно из названия запрос типа GET получает данные от сервера (читает их). Ещё есть POST-запрос (обычно, предназначен для описания создания чего-либо. На самом деле всё зависит от того, как он обрабатывается на сервере: можно завернуть всё так, что POST-запросом можно будет и удалить); PUT-запрос (чаще всего предназначен для обновления уже существующей записи); DELETE-запрос (для удаления) и некоторые другие типы запросов, про которые я тебе не расскажу, сам почитаешь.

Кстати говоря, DELETE-запрос тоже тела не имеет, как и GET.

Каждый запрос гоняет туда-сюда довольно много интересной информации. Например, cookies. Они уходят и приходят как раз-таки в заголовках. Например, заголовок set-cookie в ответе ОТ сервера отвечает за установку cookie для браузера, а заголовок cookies предназначен в передаче НА сервер данных об имеющихся cookies у клиента. Между делом, о cookies: сервер сообщает браузеру, для какого сайта установлена соответствующая cookie (domain), сколько она будет жить (expired), по какому пути внутри сайта она действует (path). Браузер сам следит за этим и не отдаст cookies твоего вконтактика каким-нибудь простакам, которые захотят посмотреть твои приватные фоточки.

Помимо cookies в заголовках передаётся user-agent - информация о браузере, которым пользуется клиент. Там же много и технической информации, которая важная для правильной обработки запроса-ответа. Например, content-type - сообщает браузеру в ответе (или серверу в запросе), какого типа информация передаётся, чтобы её можно было правильно обработать. Например, гифка будет иметь content-type: image/gif, а значит браузер сразу поймёт, что это картинка и покажет тебе анимацию с Гачимучи.

Каждый ответ от сервера начинает со статусного кода. Например, когда сервер отвечает 200 OK - это значит, что запрос успешно обработан и возвращён ответ (который, кстати говоря, может не быть успешным, 200 OK - просто факт того, что сервер тебя понял). Любой код вида 2xx - признак успешного ответа; коды вида 3xx отвечают за перенаправление запроса в какое-то другое место (браузер сам обрабатывает подобные вещи, перенаправляет запрос по другому пути), коды вида 4xx сообщают, что есть ошибка со стороны клиента, который выполняет запрос (ты же знаешь про 404, мой милый?), а коды вида 5xx говорят, что у нас беды с
башкой сервером.