Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

 13417

-- Chip

Клиент-серверный сокет / Правильный заголовок

  • На этом дополнительном слайде мы сформируем правильный HTTP-ответ,
    который будет выдавать наш сервер, чтобы даже привередливые браузеры смогли бы его отобразить.
  • Дата отправки отчёта: 27 ноября 2018 г.
  • Задание выполнено: за 3 час. 13 мин.
  • Чему научился: Научился отправлять http-ответ сервера клиенту. Проверил на своём браузере Firefox, установил браузеры Chromium и GNOME Epiphany- везде работает как надо. Дополнительно почитал про другие заголовки, узнал что многие из них связаны с кешированием. Добавил заголовок "Content-Length", который высчитывается перед отправкой сообщения.
  • Оценка видео-уроку:
Отчёт от 13417 за Клиент-серверный сокет / Правильный заголовок


Отчёт от 13417 за Клиент-серверный сокет / Правильный заголовок




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Chip  # Клиент-серверный сокет / Правильный заголовок / 2018-11-27 10:02

Навреное после Connection: close перестало многократно запрашиваться


13417. --
Chip
Chip
ответить
→  Евгений Волосатов  # Клиент-серверный сокет / Правильный заголовок / 2018-11-27 10:17

Я проверил на третьем браузере GNOME Epiphany, ему не понравился протокол HTTP/1.x, я вернул 1.0 и переотправил отчет. Заодно решил всё упростить: убрать Connection: close и заголовок отмены кеширования. Кстати нет, не помогло. Браузеры все равно повторно отправляют запрос, то есть отправляют два вместо одного. Видимо надо какой-то другой заголовок использовать.


13417. --
Chip
Chip
ответить
→  Евгений Волосатов  # Клиент-серверный сокет / Правильный заголовок / 2018-11-27 12:26

Я решил проверить содержимое первого и второго запроса браузеров. Получается так, что браузеры запрашивают во втором запросе файл favicon.ico. Тут я нашел варианты решения этой проблемы stackoverflow.com/questions/1321878/how-to-prevent-favicon-ico-requests/38917888#38917888 . В нашем случае я реализовал это так <html><head><link rel=\"icon\" href=\"data:,\"></head><body><h1>Java %d</h1>\r\n</body></html> то есть просто наш вывод обрамил в теги <html> и <body>, попутно добавил <head> чтобы использовать link rel. Решение такое себе, в двух браузерах сработало, в третьем нет. Может у вас на ваших браузерах тоже получится? Если я правильно понимаю, это проблема не нашей программы, а проблема в браузерах. Тут надо либо заморачиваться с созданием этого файла или запрета доступа к нему, чтобы не было второго запроса. В той ссылке есть разные способы.


  • Отчёт оценивали:
    17606Виктор+1   17947Dmitry Sinitsin+1   162Андрей+1   16568Игорь Тюлькин+1   6203Николай Миролюбов+1   1Евгений Волосатов+1   3747Сергей+1   3922Александр+1   19384Владимир+1   20167Айдар+1   11353AlliZzeN+1   18681alklokov+1   18419DenisMed+1   791Валерий Жданов+1   Посетитель+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Научился формировать заголовок. Проверил в Fireox, Chrome, IE, Edge Почитал про заголовки, узнал их классификацию.



Научился: Всё отлично, правильно сделали, что добавили урок по заголовкам, такие вещи надо знать!