Практика Web-Программирование. пракктика web. Браузер Opera gx вопрос 1 Браузер использует версию протокола http 1
Скачать 18.74 Kb.
|
Браузер: Opera GX Вопрос 1: Браузер использует версию протокола http – 1.1 Вопрос 2: ru-ru, ru; q=0.8, en-us:q=0.6,e; q=0.4 Вопрос 3: 128.119.245.12 Вопрос 4: Код, который вернул браузер серверу: 200 Вопрос 5: Последнее действие на https://gaia.cs.umass.edu/ - 03/01/2016 23:57:50 Вопрос 6: 3.1мб Вопрос 7: Не отображается файл «.gif», выдает ошибку «404» Вопрос 8: Да Вопрос 9: Нет Вопрос 10: Заголовок HTTP запроса If-Modified-Since делает запрос условным: сервер отправит обратно запрошенный ресурс с статусом 200, только если он был изменён после указанной даты. Вопрос 11: Если запрос не был изменён после указанной даты, ответ будет 304 без какого-либо тела; заголовок Last-Modified при этом будет содержать дату последней модификации. В отличие от If-Unmodified-Since, If-Modified-Since может использоваться только с GET или HEAD. При использовании в сочетании с If-None-Match (en-US) заголовок If-Modified-Since игнорируется, кроме тех случаев, когда сервер не поддерживает If-None-Match. Наиболее распространённым вариантом использования является обновление кешированного объекта, не связанного с ETag. Вопрос 12: Три запроса. В третьем Вопрос 13: req, _ := http.NewRequest("GET", " https://gaia.cs.umass.edu", nil) trace := &httptrace.ClientTrace{ DNSDone: func(dnsInfo httptrace.DNSDoneInfo) { fmt.Printf("DNS Info: %+v\n", dnsInfo) }, GotConn: func(connInfo httptrace.GotConnInfo) { fmt.Printf("Got Conn: %+v\n", connInfo) }, } req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace)) if _, err := http.DefaultTransport.RoundTrip(req); err != nil { log.Fatal(err) } Вопрос 14: 200. ОК Вопрос 15: но если я проверяю окно «Сведения о пакете» для ответа «HTTP 200 OK», он говорит, что были x + 1 повторно собранные сегменты TCP. Этот дополнительный сегмент TCP является ответом «HTTP 200 OK». Нужно ли считать этот пакет? Если вы имеете в виду «я должен считать больше, чем сегменты, в столбце« Информация »только говорится« [TCP-сегмент повторно собранного PDU] », ответ« да »- когда последний сегмент замечен, запрос или ответ HTTP расчленяется, и информация об этом запросе или ответе помещается в столбец Info. Не предполагайте, что единственными сегментами в запросе или ответе являются те, которые помечены как «[TCP-сегмент повторно собранного PDU]». Вопрос 16: Это основной метод, используемый для извлечения html, изображений, JavaScript, CSS и т. д. С использованием этого метода запрошено большинство данных, загружаемых в ваш браузер. Например, при загрузке статьи Nettuts +, самая первая строка HTTP-запроса выглядит так: GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1 Как только html загрузится, браузер начнет отправлять GET-запрос изображений, который может выглядеть так: GET /wp-content/themes/tuts_theme/images/header_bg_tall.png HTTP/1.1 Веб-формы можно настроить под метод GET. Вот пример. Когда эта форма отправлена, HTTP-запрос начинается так: GET /foo.php?first_name=John&last_name=Doe&action=Submit HTTP/1.1 Вы можете видеть, что каждый ввод формы был добавлен в строку запроса. Вопрос 17: Проще говоря, мультиплексирование позволяет вашему браузеру запускать несколько запросов одновременно по одному и тому же соединению и получать запросы обратно в любом порядке. А теперь гораздо более сложный ответ ... Когда вы загружаете веб-страницу, она загружает HTML-страницу, видит, что ей нужен некоторый CSS, немного JavaScript, загрузка изображений ... и т. Д. Вопрос 18: "Успешно". Запрос успешно обработан. Что значит "успешно", зависит от метода HTTP, который был запрошен: GET: "ПОЛУЧИТЬ". Запрошенный ресурс был найден и передан в теле ответа. Вопрос 19: После разбора HTML, браузер (и сервер) повторяет процесс загрузки для каждого ресурса (изображения, стили, скрипты, favicon.ico и так далее), на который ссылается HTML-страница, но при этом изменяется адрес каждого запроса c GET / HTTP/1.1 на GET /$(относительный URL ресурса www.google.com) HTTP/1.1. Если HTML ссылается на ресурс, размещённый на домене, отличном от google.com, то браузер возвращается к шагам, включающим разрешение доменного имени, а затем заново проходит процесс до текущего состояния, но уже для другого домена. Заголовок Host в запросе вместо google.com будет установлен на нужное доменное имя. |