приходи, приходи
Да, я солгал тебе, чтобы войти. Эй, эй, эй ... Раз уж ты здесь, просто посмотри и уходи.
Как фронтенд-студент, изучавший общение, разговоры о http, tcp и т. д. считаются в моей области. (Я вам скажу, что я проспал на уроке и ничего не выучил?) В этот раз я расскажу вам про http, повысьте свой уровень и обогатите свои знания. (Если бы не интервью, кому бы было дело до ттп, для меня это так поверхностно)
TCP
Чтобы сказать, что http не может обойти tcp, протокол TCP соответствует транспортному уровню, а протокол HTTP соответствует уровню приложений, По сути, они несопоставимы. Однако http основан на протоколе TCP.
Модель уровня протокола TCP/IP
- Физический уровень преобразует двоичные 0 и 1 и уровни напряжения, световые вспышки и радиоволны.
- Ссылочный уровень представляет собой драйвер
- Сетевой уровень
- Используйте протокол IP, который пересылает пакетированные данные на основе IP.
- Протокол IP является ненадежным протоколом и не будет повторно передавать
- Если IP-протокол не может отправить, он будет использовать протокол ICMP для уведомления об ошибке.
- ARP разрешает MAC-адрес в IP, а MAC-адрес предоставляется сетевой картой с завода
- IP также подразумевает функцию канального уровня, независимо от того, каков базовый канальный уровень двух сторон, они могут общаться
- транспортный уровень
- Общие протоколы TCP и UDP
- Протокол TCP ориентирован на установление соединения и может корректно справляться с проблемами потери пакетов и нарушения порядка передачи, однако для установления и разрыва соединения требуется не менее 7 раз отправки и получения пакетов, что приводит к пустой трате ресурсов.
- UDP не требует установления соединения, независимо от того, получает его другая сторона или нет, если вы хотите получать уведомления, вам нужно пройти через прикладной уровень.
- Общие протоколы TCP и UDP
- Слой над уровнем сеанса
- В уровне TCP/IP сеансовый уровень, уровень представления и прикладной уровень объединяются.
- Управление сетью по протоколу SNMP
Сосредоточьтесь на этом (самый часто задаваемый вопрос в интервью)
Трехстороннее рукопожатие TCP и четыре волны?
Мне задали гнилой вопрос, поэтому я не буду здесь вдаваться в подробности.Три рукопожатия:
- Клиент — отправить пакет с флагом SYN — одно рукопожатие — сервер
- Сервер - Отправка пакета с флагом SYN/ACK - Двустороннее рукопожатие - Клиент
- Клиент — отправить пакет с флагом ACK — трехстороннее рукопожатие — сервер
Четыре волны:
- Клиент — отправляет FIN, чтобы закрыть передачу данных между клиентом и сервером.
- Сервер — получает этот FIN, отправляет обратно ACK, подтверждающий, что порядковый номер равен полученному порядковому номеру плюс 1. Как и SYN, FIN будет занимать порядковый номер
- Сервер - закрывает соединение с клиентом, отправляет клиенту FIN
- Клиент - отправьте обратно подтверждение сообщения ACK и установите порядковый номер подтверждения равным полученному порядковому номеру плюс 1.
Если вы не разбираетесь в детской обуви, поищите чужие статьи и внимательно посмотрите!
Разница между TCP и UDP?
Внимательно прочитайте содержимое, написанное на транспортном уровне выше, понятно? (Не понял? Не понял, заучи, сволочь!)
Это часто бывает, когда мы общаемся в WeChat.Вы чувствуете то же самое?В этом случае другая сторона использует протокол TCP для чата, и вы должны пройти - вы там? --В--Балабала, успешная доставка информации. И если другая сторона использует UDP, что-то будет сказано прямо, независимо от того, получу я это или нет. (Пожалуйста, используйте протокол UDP, когда вы найдете меня в будущем, и звоните прямо в спешке!)HTTP
Протокол Http основан на протоколе TCP.Когда браузеру необходимо получить данные веб-страницы с сервера, он выдает запрос Http. Http установит канал подключения к серверу через TCP. Когда данные, необходимые для этого запроса, будут заполнены, Http немедленно отключит TCP-соединение. Этот процесс очень короткий. Таким образом, соединение Http является коротким соединением и соединением без сохранения состояния.
Так называемый stateless означает, что каждый раз, когда браузер инициирует запрос к серверу, он не проходит соединение, а каждый раз устанавливает новое соединение. Если это соединение, серверный процесс может поддерживать соединение и сохранять некоторое состояние информации в памяти. После завершения каждого запроса соединение закрывается, а связанный с ним контент высвобождается, поэтому никакое состояние не может быть запомнено, и оно становится соединением без сохранения состояния.
HTTP-транспортный поток
Бесстыжие пираты
Когда отправитель передает данные между уровнями, информация заголовка будет добавляться без прохождения через уровень, а получатель будет удалять заголовок каждый раз, когда он проходит через уровень.
Давайте снова сосредоточимся
Полное английское название HTTP?
Шучу, дело явно не в этом, но не исключено, что кто-нибудь спросит, а знать все же нужно: Протокол передачи гипертекста
код состояния?
Это коды состояния, просто запомните наиболее часто используемые:
2ХХ успехов
- 200 OK, что указывает на корректную обработку запроса от клиента на стороне сервера
- 204 Нет содержимого, что указывает на то, что запрос выполнен успешно, но ответное сообщение не содержит основной части сущности
- 206 Частичный контент, сделайте запрос диапазона
3XX редирект
- 301 перемещен навсегда, постоянное перенаправление, указывающее, что ресурсу был присвоен новый URL-адрес
- 302 найдено, временное перенаправление, указывающее на то, что ресурсу временно присвоен новый URL
- 303 см. другое, что указывает на то, что для ресурса существует другой URL-адрес, и для получения ресурса следует использовать метод GET.
- 304 не модифицировано, что свидетельствует о том, что сервер разрешает доступ к ресурсу, но запрос не соответствует условиям из-за возникновения
- 307 временная переадресация, временная переадресация, имеет то же значение, что и 302
4XX Ошибка клиента
- 400 неверный запрос, в сообщении запроса есть синтаксическая ошибка
- 401 неавторизованный, что указывает на то, что для отправленного запроса требуется информация аутентификации через HTTP-аутентификацию.
- 403 запрещено, что указывает на то, что доступ к запрошенному ресурсу был запрещен сервером
- 404 not found, указывающий на то, что запрошенный ресурс не найден на сервере
5ХХ ошибка сервера
- 500 внутренняя ошибка сервера, указывающая на то, что при выполнении запроса произошла ошибка на стороне сервера
- Служба 503 недоступна, что указывает на то, что сервер временно перегружен или отключен на техническое обслуживание и не может обрабатывать запросы.
Формат протокола HTTP?
Протокол сообщений HTTP-запроса и ответа одинаков и разделен на три части: начальную строку, заголовок сообщения и тело сообщения. Три части разделены CRLF. Последний заголовок сообщения имеет два CRLF для обозначения конца заголовка сообщения.
Начальная строка HTTP-запроса называется строкой запроса, которая выглядит как GET /index.html HTTP/1.1.
Начальная строка ответа HTTP называется строкой состояния и выглядит как 200 ok.
Заголовок сообщения состоит из множества пар ключ-значение, а CRLF используется в качестве разделителя между несколькими парами ключ-значение, или пар ключ-значение может вообще не быть. Как Content-Encoding: gzip Тело сообщения представляет собой строку, длина которой определяется ключом Content-Length в заголовке сообщения. Если поле Content-Length отсутствует, тело сообщения отсутствует. Например, запрос GET не имеет тела сообщения. Тело сообщения запроса POST обычно используется для размещения данных формы. Содержимое страницы, возвращенное в ответе на запрос GET, также помещается в тело сообщения. Содержимое JSON, возвращаемое API, который мы обычно вызываем, помещается в тело сообщения.
Безгражданство HTTP?
Так называемое отсутствие состояния протокола HTTP означает, что протокольный уровень сервера не должен устанавливать какую-либо корреляцию между различными запросами, и это конкретно относится к безстоянству уровня протокола. Но это не означает, что приложения, созданные поверх протокола HTTP, не могут поддерживать состояние. Прикладной уровень может отслеживать корреляцию между запросами пользователя через сеанс сеанса.Сервер будет привязывать уникальный идентификатор сеанса к каждому объекту сеанса.Браузер может записывать идентификатор сеанса в локальный кэш LocalStorage или Cookie, и последующие запросы будут с этим идентификатор сеанса, сервер может найти соответствующее состояние сеанса для каждого запроса.
Что происходит, когда URL-адрес вводится до загрузки страницы? (самые часто задаваемые здесь)
- введите адрес
- Браузер ищет IP-адрес доменного имени Этот шаг включает в себя конкретный процесс поиска DNS, в том числе: кеш браузера -> системный кеш -> кеш маршрутизатора...
- Браузер отправляет HTTP-запрос на веб-сервер
- Постоянный ответ перенаправления с сервера (с http://example.com на http://www.example.com)
- Адрес перенаправления отслеживания браузера
- Сервер обрабатывает запрос
- Сервер возвращает HTTP-ответ
- Браузер отображает HTML
- Браузер отправляет запрос на получение встроенных в HTML ресурсов (таких как изображения, аудио, видео, CSS, JS и т. д.)
- , Браузер отправляет асинхронный запрос
Тем не менее, следует обратить внимание на авторские права, часть содержания этой статьи исходит от большого парня.дворовая дыра, тем более полные и глубокие знания есть, не обращайте внимания скоро, а потом поблагодарите начальство за вашу терпимость ко мне.