Поле type: как упакован поток
Это ответ на вопрос «в какой обёртке данные едут до сервера». Самый простой вариант — без обёртки вовсе, и тогда в строке стоит короткое tcp. Бывают обёртки посложнее — тогда там другое слово.
Короткий ответ
Упаковка и защита — разные поля и разные вещи. Их путают чаще всего.
typeотвечает за форму передачи, а не за то, закрыто ли содержимое. За закрытость отвечает соседнее поле.- Значение выбирает сервер. В приложении переключателя упаковки нет, и вводить руками ничего не требуется.
- Значение обязано совпасть. Как и с любым другим параметром: не совпало — подключения нет.
- На скорость это влияет слабо. Разница между современными способами передачи измеряется процентами, а разница между свободной и загруженной серверной точкой — разами.
Почему рядом с tcp часто спрашивают про «none»
Потому что это два соседних поля строки, и их читают как одно словосочетание.
Первое слово говорит про упаковку, второе — про защитный слой. И вот второе как раз важно: если защитного слоя нет, содержимое ничем не закрыто.
Голый вариант в жизни почти не встречается
В рабочих связках защитный слой ставят всегда — иначе передавать нечем закрытое содержимое просто небезопасно.
Если такая строка попала к вам из открытого списка, это ещё один довод её не использовать: что вообще происходит с такими строками.
Зачем бывают обёртки посложнее
Затем, что защитный слой не обязан стоять на самом сервере.
Связку штатно поднимают так: защищённое соединение обрывается раньше, на стороне большой сети доставки содержимого, а дальше до сервера идёт своя дорога.
В такой схеме поток заворачивают в обёртку, которую та сеть понимает и пропускает: обычно это WebSocket — постоянное веб-соединение — или gRPC, способ передачи, принятый у служебных сервисов.
И вот здесь наши сведения кончаются
Мы описали серверный принцип — то, ради чего такую схему поднимают.
Как ведёт себя в ней само приложение, не описано ни у разработчика, ни в открытых источниках.
Поэтому ни советов, ни обещаний по этой части здесь не будет. Придуманный ответ дороже отсутствующего — и в справочнике, и на практике.
А если в моей строке слово, которого здесь нет
Такое возможно: набор способов передачи расширяется, и в строках встречаются новые имена — например xhttp.
Проверяемых сведений о них у нас нет ни одного, поэтому мы не пишем про них ничего — ни хорошего, ни плохого. Появится проверяемый источник — появится и разбор.
Что это значит для вас на практике
| Ситуация | Что делать |
|---|---|
В строке стоит tcp | Ничего. Это самый обычный случай |
| В строке стоит незнакомое слово | Тоже ничего: значение выбрал сервер, и приложение его понимает или нет |
| Подключение не поднимается | Дело не в значении поля, а в строке или сервере целиком |
| Хочется «переключить на другой способ» | Нельзя: сервер ждёт ровно того, на что настроен |
| Кажется, что дело в скорости | Смотреть надо на серверную точку, а не на способ упаковки |
Короткие ответы
Что быстрее — простая упаковка или сложная?
Разница между способами передачи мала и измеряется процентами. Загруженность серверной точки влияет на порядок сильнее.
Где в приложении переключить способ передачи?
Нигде. Переключателя нет: всё, что нужно, лежит внутри строки, и адреса с портами вводить руками тоже не требуется.
Это поле как-то связано с защитой?
Нет, это разные поля. Даже самая хитрая упаковка ничего не закрывает — закрывает защитный слой.
Почему тогда про этот параметр столько спрашивают?
Потому что он стоит в строке первым среди понятных на вид слов, и его принимают за главный. Главный он не больше остальных.