Сети и протоколы
WebSocket: тест на припоминание
Припоминание сильнее перечитывания. На каждый промпт скажи или запиши полный ответ по памяти до того, как откроешь образцовый — именно усилие припоминания закрепляет юнит.
Восстанови хребет юнита — upgrade, framing и masking, выбор транспорта, backpressure, переподключение с jitter и потолки масштаба — не подглядывая в уроки.
- 01Почему WebSocket делает upgrade существующего HTTP-соединения, а не открывает новый сырой TCP-сокет, и что происходит на проводе сразу после 101?
- 02Почему frame client-to-server обязаны быть маскированы, а frame server-to-client — нет?
- 03Назови два случая, где SSE — лучший дефолт, чем WebSocket, и один случай, где подойдёт только WebSocket.
- 04Пройди по сбою backpressure на broadcast-сервере и исправлению через high-water mark.
- 05Почему exponential backoff без jitter всё равно вызывает thundering herd и каков правильный рецепт переподключения?
- 06Назови три независимых потолка на число соединений на WebSocket-сервер и как горизонтальный масштаб и HTTP/2 extended CONNECT их сдвигают.
Если ты смог восстановить каждый ответ по памяти, ты держишь хребет юнита: upgrade переиспользует существующее соединение, так что инфраструктура его маршрутизирует; masking защищает провод от cache poisoning; выбор транспорта следует за направлением потока данных; backpressure — каноничный OOM, ограничиваемый high-water mark; переподключение должно быть с jitter, иначе оно становится thundering herd; а масштаб упирается в потолки RAM, file descriptor и NIC, которые мультиплексирование HTTP/2 и fan-out pub/sub отодвигают.