Прочитай настоящий запрос и настоящий ответ и узнай, что на самом деле значат 200, 404 и 500.
Открыть этот урок в KodokonHTTP (HyperText Transfer Protocol) - это язык, на котором браузер и сервер разговаривают друг с другом. Хорошая новость: это не непонятный двоичный код, а читаемый текст. Запрос умещается в несколько строк: глагол, адрес, а затем заголовки, которые уточняют контекст (какой язык я предпочитаю, каким браузером пользуюсь). Ответ устроен так же: числовой код, заголовки, пустая строка, а после неё содержимое.
curl -i https://example.com
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400
<!doctype html>
<html>
...Глагол в начале запроса называется методом и объявляет твоё намерение. GET просто просит прочитать ресурс: именно это делает браузер каждый раз, когда ты открываешь страницу. POST отправляет данные на сервер, обычно когда ты подтверждаешь форму регистрации. PUT обновляет уже существующий элемент, а DELETE просит его удалить. Запомни прежде всего первые два: на них приходится подавляющая часть всего трафика.
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/postКаждый ответ начинается с трёхзначного кода статуса. Уже по одной первой цифре понятно, что происходит. Коды из группы 2xx означают успех: 200 говорит "вот то, что ты просил". Коды 3xx - это перенаправления: 301 значит "страница переехала, иди туда". Коды 4xx указывают на ошибку на стороне клиента: 404 (ресурс не найден), 403 (доступ запрещён), 401 (нужно войти в аккаунт). Коды 5xx указывают на сбой на стороне сервера: 500 - классическая внутренняя ошибка.
curl -I https://example.com/this-page-does-not-exist
HTTP/2 404
content-type: text/html; charset=UTF-8