Постоянное соединение в HTTP | Курс "Компьютерные сети"

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 88

  • @Agata4477
    @Agata4477 Рік тому +6

    Обалдеть. Такой курс бесплатный. Огромное вам спасибо.

  • @СвоимиГлазами-у2н
    @СвоимиГлазами-у2н 7 років тому +55

    Спасибо большое за ваш труд!

    • @AndreySozykin
      @AndreySozykin  7 років тому +2

      +Ivan _, пожалуйста!

    • @СвоимиГлазами-у2н
      @СвоимиГлазами-у2н 7 років тому +5

      Может быть у Вас найдется время создать аналогичную лекцию с объяснением VPN соединений ?

  • @kreemen1399
    @kreemen1399 Рік тому +5

    Это лучший образовательный канал! Спасибо вам за труд!

    • @AndreySozykin
      @AndreySozykin  Рік тому

      Спасибо за приятный отзыв!

  • @Q_School
    @Q_School 3 роки тому +2

    Спасибо.
    Qilgan bu yaxshi amallariyezni ajrini bersin.

  • @nikolay_antipin
    @nikolay_antipin 3 роки тому +2

    Андрей, огромное спасибо за Вашу работу! Изучал по Вашим урокам компьютерные сети, прошёл собеседование!!!

  • @РоманРоманов-э5х5х
    @РоманРоманов-э5х5х 3 роки тому +2

    Найкращий контент про мережі !!!

  • @Азамат-ш4з
    @Азамат-ш4з 4 роки тому +7

    07:57 - не совсем понял: несколько HTTP соединений или TCP соединений?
    Если это не опечатка, то эти http соединения находятся в пределах одного tcp соединения, или каждое http соединение находится внутри своего tcp соединения?

  • @TheNeocivic
    @TheNeocivic 3 роки тому +2

    Лучший и системный курс

  • @gansgimmler3684
    @gansgimmler3684 2 роки тому +1

    Андрей, спасибо вам большое!

  • @kseniyasakki4382
    @kseniyasakki4382 3 роки тому +2

    Спасибо вам, Андрей!

  • @atillaattila8900
    @atillaattila8900 8 років тому +5

    Spasibo Balshoe
    vso ochen krasivo i poyatlivo

    • @AndreySozykin
      @AndreySozykin  8 років тому

      +atilla atilla, пожалуйста!

  • @PavlentijIvani4
    @PavlentijIvani4 4 роки тому +1

    Андрей, подскажите пожалуйста, не удается установить соединение через PuTTY. Нужно выбирать RAW, Telnet? У меня ошибка "Connection closed by remote host", либо "400 Bad Request". А может быть просто в 2016 году вы не использовали HTTPS, а теперь используете и больше такой вариант общения с сервером не работает?

  • @O-L-1986
    @O-L-1986 4 роки тому +5

    Спасибо, все лаконично и понятно!

  • @СергейПарамзин-у8й
    @СергейПарамзин-у8й 4 роки тому +2

    Андрей огромное спасибо !

  • @KosmoKiit
    @KosmoKiit 4 роки тому +2

    Сенькю за лекции

  • @resident77777
    @resident77777 3 місяці тому

    Дякую за корисний контент :))))

  • @alexwolkow8534
    @alexwolkow8534 4 роки тому +3

    Спасибо Вам большое!

  • @ivanstrelka3448
    @ivanstrelka3448 5 років тому +1

    Подскажите пожалуйста, как разобраться с протоком WebSocket? Как-то мало информации системной об этом, показалось. Спасибо

  • @АнатолийАнатолий-п1д
    @АнатолийАнатолий-п1д 5 років тому +2

    Если кому интересно, вот статья в блоге nginx, рассказывающая о том, что нового в HTTP 2.0 и почему он далеко не всегда выгоднее HTTP 1.1: www.nginx.com/blog/http2-module-nginx/#features
    Warning: статья на английском.

  • @isfland
    @isfland 4 роки тому +1

    Интересно как работает keep-alive в современном мире Single Page Applications.
    По сути сервер отдает практически пустую html-страницу пользователю при первоначальном заходе на сайт. Потом подгружается js-бандл, который тянет с сервера json-ы с данными и рендерит их в симпатичном лэйауте.
    И в процессе взаимодействия пользователя с сайтом просто гуляют туда-сюда json-ы, без перезагрузки страницы.
    Имеет ли смысл серверу SPA держать соединение 5-15 секунд, или выгоднее при каждом XmlHttpRequest открывать новое TCP-соединение?

    • @AndreySozykin
      @AndreySozykin  4 роки тому +2

      Загрузка данных через XmlHTTPRequest все равно выполняется через HTTP. Выгодно или нет держать соединение открытым, определяется конкретным приложением, насколько часто данные в нем должны обновляться.

  • @sergeyufimtsev711
    @sergeyufimtsev711 8 років тому +2

    Здравствуйте, спасибо за урок! А сервер HTTP 1.1 может сам отказаться от поддержки постоянного соединения?

    • @AndreySozykin
      @AndreySozykin  8 років тому +5

      +Sergey Ufimtsev, да, может. Поддержка постоянного соединения не является обязательной. У сервера может не хватить ресурсов. Или администратор может напрямую запретить постоянное соединение.
      В этом случае сервер просто закрывает соединение сразу после передачи ответа.

  • @DanL0
    @DanL0 2 роки тому

    Вы говорите, что сначала идет запрос на сервер для получения HTML документа, а после его загрузки происходит его анализ с целью поиска других связанных ресурсов для загрузки. То есть сначала загружаем документ, потом файлы стилей, картинки и скрипты. С файлами стилей и картинками все понятно, они действительно подгружаются после загрузки документа, чем создают некоторые проблемы для разработчиков среди которых перемещение контента из за поздно загрузившейся картинки, мигание шрифтов и прочее. Но файлы скриптов (JS) они ведь выполняются по мере загрузки страницы, то есть синхронно и основной поток будет ждать их загрузки. То есть они в отличии от остальных файлов по умолчанию синхронны и только используя специальные атрибуты можно задать иное поведение.
    Первый вопрос: интересно, а почему так?
    Второй вопрос: а как вообще так то?)) Браузер что, тормозит весь поток и даже текущую загрузку целевого документа, но отдает запрос на загрузку скрипта и его выполнения и только потом он все возобновляет? Что за важность такая у скриптов?
    Спасибо))

  • @dzen1234
    @dzen1234 7 років тому +7

    Строго говоря, в 1.0 есть возможность юзать keep-alive через расширение протокола :).

    • @AndreySozykin
      @AndreySozykin  7 років тому +1

      +dzen1234, да, это правильно.

  • @andreypolevoy5311
    @andreypolevoy5311 4 роки тому +2

    Друг, спасибо

  • @ИванИванов-ю2е5ц
    @ИванИванов-ю2е5ц 3 роки тому +2

    спасибо!!!

  • @ILyaCyclone
    @ILyaCyclone 4 роки тому +3

    7:59 разве в HTTP/1 максимальное число одновременных соединений с одним источником не ограничено двумя?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Я не знаю такого ограничения в самом протоколе.

  • @МаксВетер-х8ш
    @МаксВетер-х8ш 6 років тому +4

    2:52 - оговорка, TCP-соединения

  • @anything5661
    @anything5661 7 років тому +6

    Не совсем понятна одна деталь. Когда браузер открывает несколько HTTP соединений, он в каждом соединении должен установить TCP соединение, или что-то не так я понимаю? Если не сложно ответьте подробнее.

    • @AndreySozykin
      @AndreySozykin  7 років тому

      Да, если не используется постоянное TCP-соединение.

    • @MrAndreyqwe
      @MrAndreyqwe 6 років тому +3

      А вы в лекции говорили, что каждое такое соединение может быть постоянным и использоваться для загрузки нескольких ресурсов, что противоречит данному ответу.

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +Андрей Прощенко, это разные режимы работы. Первоначально для загрузки каждого элемента страницы нужно было отправлять отдельный запрос HTTP и в нем устанавливать соединение. Когда страницы стали сложными, такой подход перестал быть эффективным. Поэтому разработали новый подход с постоянным соединением TCP, через которое можно загружать несколько элементов страницы.

    • @MrAndreyqwe
      @MrAndreyqwe 6 років тому +1

      Это я понял, я просто запутался, а вы говорите за еще один вариант, как можно ускорить загрузку страницы - несколько HTTP соединений, и каждое из них исп. для загрузки разных ресурсов. Они могут исп. постоянное TCP соединение?ua-cam.com/video/7DitlqcesKI/v-deo.html

    • @AndreySozykin
      @AndreySozykin  6 років тому +3

      +Андрей Прощенко, да, каждое соединение HTTP может использовать постоянное соединение TCP. Но у каждого HTTP соединения будет свое TCP соединение.
      В HTTP версии 2 можно асинхронно запрашивать через одно соединение TCP несколько ресурсов. Это называется мультиплексирование.

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 5 років тому +2

    Спасибо, всё по делу

  • @gamewithrap
    @gamewithrap 4 роки тому +2

    Это и есть web socket?

    • @AndreySozykin
      @AndreySozykin  4 роки тому +1

      Нет, web сокеты это отдельная технология. Вот видео про Web-сокеты - ua-cam.com/video/TxVriqBkqbM/v-deo.html

  • @Andrzej3935
    @Andrzej3935 2 роки тому

    Спасибо!

  • @w1tcherj
    @w1tcherj 5 років тому +1

    5:50 А за зачем close писать если есть флаг fin? Просто в дальнейшем этот флаг нельзя отправить и закрыть соединение? Или после close соединение со стороны клиента считается закрытым? Как вообще происходит дело после connection: close ?

    • @AndreySozykin
      @AndreySozykin  5 років тому +2

      Флаг fin используется в TCP. А close - в протокол HTTP. После того, как в HTTP написать close, реализация HTTP создаст сегмент TCP для разрыва соединения (с установленным флагом FIN) и проследит, чтобы соединение разорвалось.

    • @w1tcherj
      @w1tcherj 5 років тому

      @@AndreySozykin спасибо, как-то всё запутанно, но логично ска)

  • @nazimtairov6861
    @nazimtairov6861 5 років тому +2

    на примере python
    import socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('127.0.0.1', 8888))
    sock.listen(5)
    while True:
    try:
    client, addr = sock.accept()
    except KeyboardInterrupt:
    sock.close()
    break
    else:
    result = client.recv(1024)
    client.close() # если бы мы тут не закрыли соединение с клиентом, то получилось бы,
    # якобы тут от http приходит, connection: keep alive заголовок и соединение постоянно слушается ?
    print("MSG:", result.decode('utf-8'))
    т.е когда клиент устанавливает TCP соединение с сервером, сервер не закрывает соединение с клиентом после получения сегмента и постоянно ждет новых?

  • @ЕгорМиронов-щ3п
    @ЕгорМиронов-щ3п 5 років тому +1

    08:09 Имелось ввиду несколько TCP соединений через которые пойдут запросы HTTP? Или же все-таки в старой версии HTTP не использовалось TCP и все отправлялось в запросах, что делает метод нескольких HTTP соединений немного улучшеной старой технологией?

    • @АнатолийАнатолий-п1д
      @АнатолийАнатолий-п1д 5 років тому

      Да, несколько соединений TCP.
      Что значит "все отправлялось в запросах"? HTTP - это протокол прикладного уровня для работы с Web. TCP - протокол транспортного уровня для передачи данных. HTTP никогда не был протоколом транспортного уровня и никогда не выполнял работу TCP, это два совершенно разных уровня.

  • @asktosimon
    @asktosimon 2 роки тому

    спасибо)

  • @egoist2956
    @egoist2956 3 роки тому +2

    Лайк

  • @sergeyshestakov607
    @sergeyshestakov607 5 років тому +2

    Спасибо

  • @MrEmityushkin
    @MrEmityushkin 2 роки тому

    Plus

  • @gulnarshynatai431
    @gulnarshynatai431 2 роки тому +1

    Спасибо Вам Андрей!

  • @suvar8667
    @suvar8667 3 роки тому +2

    благодарю

  • @artur_kia
    @artur_kia 3 роки тому +1

    Спасибо