LINUX.ORG.RU

Вопросик

 , , ,


0

2

Заметил что на XHR запросы (мои api) браузер посылает заголовок Connection: keep-alive. Посмотрел например на ютубе АПИ (пример https://www.youtube.com/youtubei/v1) такой заголовок браузер не посылает. Вообще от чего зависит это? Нужно ли закрывать соединения, которые идут на API?

★★★★

Последнее исправление: gobot (всего исправлений: 1)

Я знаю, что ничего не знаю, но - думаю, что при работе как сервер - обязан или во-всяком случае смотреть, что клиент сообщает, а при подключении сервера - все-равно.

sword
()

Нужно ли закрывать соединения, которые идут на API?

Нужно закрывать, а то пестики заползут в твою тычинку. Лучше вообще провод интернета выдернуть или симку порезать. Так непонятные соединения точно не смогут заползти вам в компуктер и повредить оперативную память.

Очередные наивные вопросики от звездочных скоров =)

ALiEN175
()
Последнее исправление: ALiEN175 (всего исправлений: 1)

Вообще от чего зависит это?

От версии протокола и намерений клиента. Connection: close означает, что клиент собирается закрыть соединение после получения ответа, так что сервер может спокойно закрывать сокет на своей стороне. Connection: keep-alive — это противоположность Connection: close и имеет смысл только в HTTP/1.0, а в HTTP/1.1 и далее это поведение по умолчанию.

Нужно ли закрывать соединения, которые идут на API?

А это уже на усмотрение сервера) Любой HTTP-клиент сможет обработать обрыв соединения после ответа. Но это может быть неоптимальным решением.

annulen ★★★★★
()
Ответ на: комментарий от firkax

А еще миллион причин придумаете? http3 тоже не лыком шит. И заголовки в наличии.

по-факту keep-alive от ютуба означает - «братишка, готов получить порцию видоса?» Да - держи порцию видосика. Нет - значит нет. Либо переключение на другой сервер, либо конкретный keep-alive идёт лесом, ибо не отвечает.

ALiEN175
()
Ответ на: комментарий от annulen

намерений клиента

Так в это и вопрос. Как браузер решает слать keep-alive или нет? Почему на https://www.youtube.com/ он не шлет заголовок Connection? А на лор шлет? Даже если в ответ 404 кинешь, то все равно браузер не закрывает соединение (если в ответ явно не прислать Connection: close).

gobot ★★★★
() автор топика
Ответ на: комментарий от ALiEN175

Ой очередные петросяны. Чувак пойми мне не стыдно любые вопросы задавать, кажутся они тебе тупыми\наивными или не кажется, ваще пофиг, а также сколько там звезд (о боже!)

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Почему на https://www.youtube.com/ он не шлет заголовок Connection? А на лор шлет?

Если на ютубе используется http/3, то в нём нет никаких конекшенов, поэтому и слать незачем. А вообще надо в коде браузера смотреть. Если запрос шлёт JS, то там на заголовки влияет код скрипта

annulen ★★★★★
()

Ютуб видимо использует http/2 или даже 3, а твое апи http/1.1 Ютуб скорее всего экономит cpu на установление https-сессии и уменьшает TTFB, но приходится держать больше открытых соединений что занимает больше ресурсов на фронтовых серверах

cobold ★★★★★
()
Ответ на: комментарий от ALiEN175

Учись читать нормально, ни про какой «keepalive от ютуба» автор не спрашивал. Ну и отдача видео там работает не так как ты походу себе представляешь.

firkax ★★★★★
()