Два «брата» — компьютерная сеть и компьютерная операционная система — все позиции разработки, которые должны быть «под присягой», независимо от того, занимаетесь ли вы Java, C++ или тестируете. Для back-end разработки детской обуви компьютерная сеть имеет не меньшее значение, чем языковая основа, ведь разработка обычно связана с сетью, например: захват пакета и так далее. Поэтому к подготовке к этому пункту знаний следует все же отнестись с трепетом, и не пропускать ни одной проблемы, ускользнувшей из сети. Ниже мой процесс обучения:
2. Делайте заметки: Есть еще много знаний о компьютерных сетях.Когда вам нужно прочитать книгу, делайте заметки, чтобы облегчить обзор. И когда вы делаете заметки, вы можете зайти в Baidu по этой точке знаний, чтобы увидеть, есть ли какие-то моменты, которые вы пропустили, а затем добавить их. Позвольте мне поговорить об этом здесь, почему я продолжаю подчеркивать необходимость делать заметки? Преимущество 1: Делать заметки — это первый раз, когда вы просматриваете точки знаний в книге и углубляете свою память; Преимущество 2: И если вы публикуете в сообществе по связям с общественностью, вы должны обеспечить максимальную точность, вам нужно посмотреть на это еще раз Знание баллы, проверьте, нет ли у вас недоразумений и упущений и т. д., чтобы завершить глубокое копание баллов знаний; Преимущество 3: Когда дело доходит до обзора интервью, вы вряд ли будете читать книгу снова, тогда появятся примечания Очень важно, чтобы заметки, сделанные вами, можно было просмотреть очень быстро, и лучше всего иметь какое-то понимание в заметках, которое отличается от написания Священных Писаний лицом к лицу.
3. Посмотрите на личные писания: часто проверяйте Ню Кэ, чтобы узнать, что интервьюеры спрашивают о компьютерных сетях? Вы можете ответить на многие вопросы, но если вы не понимаете, как спрашивает интервьюер, вы не сможете на них ответить; подготовили ли вы сами вопросы, которые задавали? Кроме того, компьютерная сеть и компьютерная операционная система будут подчеркнуты из-за разных компаний и должностей.Если вы посмотрите интервью, вы обнаружите, что есть еще некоторые правила, но это не абсолютно.В конце концов, вы должны увидеть Ваше интервью.Предпочтение офицера.
1. Расскажите о своем понимании архитектуры пятиуровневого сетевого протокола?
При изучении компьютерных сетей мы обычно применяем компромиссный метод, то есть нейтрализуем преимущества OSI и TCP/IP и принимаем архитектуру только с пятиуровневыми протоколами, которая одновременно кратка и понятна.
- 1. Прикладной уровень
- 2. Транспортный уровень
- 3. Сетевой уровень
Два компьютера, взаимодействующие в компьютерной сети, могут проходить через множество каналов передачи данных, а также могут проходить через множество коммуникационных подсетей. Задача сетевого уровня — выбрать соответствующие узлы маршрутизации и коммутации между сетями, чтобы обеспечить своевременную доставку данных. При отправке данных сетевой уровень инкапсулирует сегменты или пользовательские дейтаграммы, сгенерированные транспортным уровнем, в пакеты и пакеты для передачи. В архитектуре TCP/IP, поскольку сетевой уровень использует протокол IP, пакеты также называются дейтаграммами IP или просто дейтаграммами.
- 4. Канальный уровень
- 5. Физический уровень
Единицей данных, передаваемых на физическом уровне, является бит. Роль физического уровня заключается в реализации прозрачной передачи битовых потоков между соседними компьютерными узлами и максимально возможном устранении различий между конкретными средами передачи и физическими устройствами. Уровень канала передачи данных выше него не должен учитывать, что является конкретной средой передачи сети. «Прозрачная передача потока битов» означает, что поток битов, передаваемый реальной схемой, не изменился, и цепь кажется невидимой для передаваемого потока битов.
2. Какие сетевые протоколы соответствуют каждому уровню?
В системе пятиуровневой компьютерной сети задействовано множество протоколов. Наиболее часто используемые из них перечислены ниже:
3. Как работает протокол ARP?
Протокол ARP на сетевом уровне завершает сопоставление IP-адресов и физических адресов. Во-первых, каждый хост создает список ARP в своем собственном буфере ARP для представления соответствия между IP-адресами и MAC-адресами. Когда узлу-источнику необходимо отправить пакет данных узлу-получателю, он сначала проверит, есть ли MAC-адрес, соответствующий IP-адресу, в его списке ARP: если да, он отправит пакет данных напрямую на этот MAC-адрес; если нет, он отправит широковещательный пакет запроса ARP в сегмент локальной сети, чтобы запросить MAC-адрес, соответствующий хосту назначения.
Этот пакет запроса ARP включает IP-адрес исходного хоста, аппаратный адрес и IP-адрес целевого хоста. После того, как все узлы в сети получат этот запрос ARP, они проверят, совпадает ли IP-адрес назначения в пакете данных с их собственным IP-адресом. Если это не то же самое, игнорируйте пакет данных; если это то же самое, хост сначала добавляет MAC-адрес и IP-адрес отправителя в свой собственный список ARP, если информация об IP уже существует в таблице ARP, он перезапишет ее. , а затем отправить Хост отправляет ответный пакет ARP, чтобы сообщить другой стороне, что это MAC-адрес, который ей нужно найти; после того, как хост-источник получает ответный пакет ARP, он добавляет IP-адрес и MAC-адрес хоста назначения свой собственный список ARP и используйте эту информацию, чтобы начать передачу данных. Если хост-источник никогда не получал ответный пакет ARP, это означает, что запрос ARP завершился неудачно.
4. Расскажите о своем понимании классификации IP-адресов?
IP-адрес относится к адресу Интернет-протокола, который представляет собой унифицированный формат адреса, предоставляемый протоколом IP.Он назначает логический адрес каждой сети и каждому хосту в Интернете, чтобы скрыть разницу в физических адресах. Схема адресации IP-адресов делит пространство IP-адресов на пять классов: A, B, C, D и E. Среди них A, B и C являются базовыми классами, а классы D и E используются как многоадресные и зарезервированные, и являются специальными адресами.
Каждый IP-адрес включает в себя два идентификационных кода (ID), идентификатор сети и идентификатор хоста. Все узлы в одной физической сети используют один и тот же идентификатор сети, а узел в сети (включая рабочие станции, серверы и маршрутизаторы в сети) имеет соответствующий ему идентификатор узла. Характеристики адресов класса A~E следующие:
5. Каковы основные возможности TCP?
6. Каковы основные особенности UDP?
7. В чем разница между TCP и UDP?
8. Какие общие протоколы прикладного уровня соответствуют TCP и UDP?
- 1. Протокол прикладного уровня, соответствующий TCP
- 2. Протокол прикладного уровня, соответствующий UDP
9. Подробно опишите процесс трехэтапного рукопожатия TCP?
1. Трехстороннее рукопожатие
Процесс установления соединения в TCP называется рукопожатием, и рукопожатие требует обмена тремя сегментами TCP между клиентом и сервером.
10. Почему нельзя дважды пожать друг другу руки?
11. Почему нет необходимости в четырехстороннем рукопожатии?
Некоторые люди могут сказать, что после того, как А отправил информацию о третьем рукопожатии, он вошел в состояние соединения, не получив запроса Б. Что, если пакет подтверждения А потерян или застрял?
Мы должны понимать, что абсолютно надежного протокола связи не существует. После трехэтапного рукопожатия клиент и сервер могут подтвердить предыдущий статус связи, и оба получили подтверждающую информацию. Следовательно, даже если количество рукопожатий будет увеличено, нельзя гарантировать, что последующая связь будет полностью надежной, поэтому в этом нет необходимости.
12. После того, как сервер получил SYN от клиента, почему он возвращает SYN?
SYN, отправленный получателем обратно отправителю, должен сообщить отправителю, что информация, которую я получил, действительно является сигналом, который вы отправили.
SYN — это сигнал квитирования, используемый TCP/IP при установлении соединения. Когда между клиентом и сервером устанавливается нормальное сетевое соединение TCP, клиент сначала отправляет сообщение SYN, сервер использует ответ SYN-ACK, чтобы указать, что он получил сообщение, и, наконец, клиент отправляет ACK (Подтверждение [ Перевод на китайский язык: символ подтверждения, При передаче данных - символ управления передачей, отправляемый принимающей станцией на передающую станцию. Он указывает, что полученные данные были получены без ошибок]) ответ на сообщение. Таким образом, между клиентом и сервером может быть установлено надежное TCP-соединение, и данные могут передаваться между клиентом и сервером.
13. Зачем отправлять ACK после передачи SYN?
Правильная связь между двумя сторонами должна заключаться в том, что информация, отправляемая друг другу обеими сторонами, верна. SYN передается, что доказывает, что с каналом от отправителя к получателю проблем нет, но канал от получателя к отправителю также нуждается в сигнале ACK для проверки.
14. Опишите подробно процесс четырехкратной завивки ПТС?
После завершения передачи данных обе стороны связи могут разорвать соединение. Теперь и A, и B находятся в состоянии ESTABLISHED.
Первая волна: процесс приложения A сначала отправляет сегмент освобождения соединения в свой TCP, снова прекращает отправку данных и активно закрывает TCP-соединение. A устанавливает бит управления завершением FIN в заголовке сегмента разрыва соединения в 1, а его порядковый номер seq = u (равный порядковому номеру последнего байта ранее переданных данных плюс 1), затем A входит в FIN-WAIT -1 (Завершить состояние ожидания 1) и дождаться подтверждения от B. Обратите внимание: TCP предусматривает, что даже если сегмент FIN не несет данных, он использует порядковый номер.
Вторая волна: B отправляет подтверждение сразу после получения сегмента разрыва соединения, номер подтверждения ack = u + 1, а собственный порядковый номер сегмента v (равный последнему слову данных, которое было передано до B). порядковый номер секции увеличивается на 1), а затем B переходит в состояние CLOSE-WAIT (ожидание закрытия). В это время серверный процесс TCP должен уведомить высокоуровневый процесс приложения, чтобы соединение от A к B было разорвано. В это время TCP-соединение находится в полузакрытом состоянии, то есть у A нет данных для отправки. , но если B отправляет данные, A все равно хочет их получить. То есть соединение от B к A не закрыто, и это состояние может продолжаться в течение определенного периода времени. Получив подтверждение от B, A переходит в состояние FIN-WAIT-2 (ожидание завершения 2) и ожидает сегмента освобождения соединения, отправленного B.
Третья волна: если у B нет данных для отправки A, его прикладной процесс уведомит TCP о разрыве соединения. В это время сегмент освобождения соединения, отправленный B, должен иметь FIN = 1. Предположим, что порядковый номер B равен w (в полузакрытом состоянии B мог отправить еще какие-то данные). B также должен повторить последний отправленный номер подтверждения ack = u + 1. В это время B входит в состояние LAST-ACK (последнее подтверждение) и ожидает подтверждения от A.
Четвертая волна: после того, как A получит сообщение об освобождении соединения от B, он должен подтвердить его. Установите ACK на 1 в сегменте подтверждения, номер подтверждения ack = w + 1 и собственный порядковый номер seq = u + 1 (ранее отправленный сегмент FIN использует порядковый номер). Затем войдите в состояние TIME-WAIT (время ожидания). Обратите внимание, что TCP-соединение еще не разорвано. A должен дождаться времени, установленного таймером 2MSL (MSL: максимальное время жизни сегмента), прежде чем A сможет войти в состояние CLOSED, а затем отменить блок управления передачей и разорвать это TCP-соединение. Конечно, если B получает подтверждение от A, он переходит в состояние CLOSED, а затем отменяет блок управления передачей. Таким образом, при разрыве соединения B завершает TCP-соединение раньше, чем A.
15. Почему состояние TIME-WAIT должно ждать 2MSL?
16. Почему второй и третий раз нельзя объединить, и какое время ожидания между вторым и третьим разом?
Когда сервер выполняет вторую волну, это доказывает, что клиент больше не будет запрашивать какие-либо данные с сервера, но сервер, возможно, все еще отправляет данные клиенту (возможно, ресурс, который клиент запросил в прошлый раз, еще не отправлен) , поэтому сервер будет ждать передачи ранее не переданных данных перед отправкой запроса на закрытие.
17. Какова функция таймера проверки активности?
В дополнение к таймеру ожидания, TCP также имеет таймер проверки активности. Представьте себе сценарий, в котором клиент активно установил TCP-соединение с сервером. Но затем хост клиента внезапно выходит из строя. Очевидно, что сервер больше не сможет получать данные, отправленные клиентом в будущем. Поэтому должны быть меры, чтобы сервер не ждал напрасно. Это требует использования таймера поддержания активности.
Каждый раз, когда сервер получает данные от клиента, он сбрасывает таймер проверки активности, который обычно устанавливается на два часа. Если данные клиента не поступают в течение двух часов, сервер отправляет тестовый сегмент, а затем отправляет его каждые 75 секунд. Если после отправки 10 тестовых сегментов подряд нет ответа от клиента, сервер считает, что клиент неисправен, и затем закрывает соединение.
18. Как протокол TCP обеспечивает надежную передачу?
19. Расскажите о своем понимании соглашения об остановке ожидания?
20. Расскажите о своем понимании протокола ARQ?
- Протокол автоматического повторного запроса ARQ
Тайм-аут повторной передачи в протоколе с остановкой ожидания означает, что до тех пор, пока подтверждение не будет получено в течение определенного периода времени, ранее отправленный пакет будет передан повторно (считается, что только что отправленный пакет потерян). Следовательно, каждый раз при отправке пакета необходимо устанавливать таймер тайм-аута, а время его повторной передачи должно быть больше, чем среднее время приема-передачи данных при передаче пакета. Этот режим автоматического повторения часто называют автоматическим ARQ запроса на повторение.
- Непрерывный протокол ARQ
Непрерывный протокол ARQ улучшает использование канала. Отправитель поддерживает окно отправки, и все пакеты в пределах окна отправки могут отправляться непрерывно, не дожидаясь подтверждения от другой стороны. Получатель обычно принимает кумулятивное подтверждение и отправляет подтверждение последнему пакету, прибывшему по порядку, указывая, что все пакеты до этого пакета были получены правильно.
21. Расскажите о своем понимании раздвижных окон?
TCP использует механизм скользящего окна для реализации управления потоком. Скользящее окно — это метод управления потоком. В ранней сетевой связи две взаимодействующие стороны не учитывали перегрузку сети для прямой отправки данных. Поскольку никто не знает о состоянии перегрузки сети и отправляет данные одновременно, промежуточные узлы блокируют и отбрасывают пакеты, и никто не может отправлять данные, поэтому для решения этой проблемы существует механизм скользящего окна.
В TCP для управления передачей используется скользящее окно Размер скользящего окна означает, какой объем буфера есть у приемника для приема данных. Отправитель может использовать размер скользящего окна, чтобы определить, сколько байтов данных следует отправить. Когда скользящее окно равно 0, отправитель, как правило, больше не может отправлять дейтаграммы, за исключением двух случаев, один из которых предназначен для отправки срочных данных, например, позволяющих пользователю завершить запущенный процесс на удаленной машине. Другая ситуация заключается в том, что отправитель может послать 1-байтовую дейтаграмму, чтобы проинформировать получателя о том, что нужно повторно указать следующий байт, который он хочет получить, и размер скользящего окна отправителя.
22. Расскажите о своем понимании управления потоком?
TCP использует скользящие окна для управления потоком. Управление потоком предназначено для управления скоростью отправки отправителя и обеспечения того, чтобы у получателя было время для приема. Поле окна в сообщении подтверждения, отправленном получателем, может использоваться для управления размером окна отправителя, тем самым влияя на скорость отправки отправителем. Если в поле окна установлено значение 0, отправитель не может отправлять данные.
23. Расскажите о своем понимании управления перегрузкой TCP? Какие алгоритмы используются?
Управление перегрузкой отличается от управления потоком: первое представляет собой глобальный процесс, а второе относится к управлению двухточечным трафиком. В определенный момент, если спрос на ресурс в сети превышает доступную часть этого ресурса, производительность сети ухудшится. Такая ситуация называется запором.
Контроль перегрузки предназначен для предотвращения ввода слишком большого количества данных в сеть, чтобы маршрутизаторы или каналы в сети не были перегружены. Управление перегрузкой исходит из того, что сеть может выдержать существующую сетевую нагрузку. Управление перегрузкой — это глобальный процесс, в котором участвуют все хосты, все маршрутизаторы и все факторы, связанные с ухудшением производительности передачи по сети. Напротив, управление потоком часто представляет собой управление трафиком «точка-точка» и представляет собой сквозную проблему. Все, что делает управление потоком, — это регулирует скорость, с которой отправитель отправляет данные, чтобы у получателя было время их получить.
Для управления перегрузкой отправитель TCP поддерживает переменную состояния окна перегрузки (cwnd). Размер окна контроля перегрузки зависит от степени загруженности сети и изменяется динамически. Отправитель позволяет своему окну отправки быть меньшим из окна перегрузки и окна приема получателя.
TCP использует четыре алгоритма для управления перегрузкой, а именно: медленный старт, предотвращение перегрузки, быстрая повторная передача и быстрое восстановление. На сетевом уровне маршрутизаторы также могут применять соответствующие стратегии отбрасывания пакетов (такие как активное управление очередями AQM), чтобы уменьшить перегрузку сети.
- Медленный старт:
Идея алгоритма медленного старта заключается в том, что когда хост начинает отправлять данные, если большое количество байтов данных сразу же вводится в сеть, это может вызвать перегрузку сети, потому что соответствие сети еще неизвестно. Опыт показал, что лучший метод — сначала зондировать, то есть постепенно увеличивать окно отправки от малого до большого, то есть постепенно увеличивать значение окна перегрузки от малого до большого. Начальное значение cwnd равно 1, и cwnd удваивается после каждого раунда распространения.
- Предотвращение перегрузки:
Идея алгоритма предотвращения перегрузки состоит в том, чтобы медленно увеличивать cwnd окна перегрузки, то есть увеличивать cwnd отправителя на 1 каждый раз, когда истекает время приема-передачи RTT.
- Быстрая ретрансляция и быстрое восстановление:
В TCP/IP быстрая повторная передача и восстановление (FRR) — это алгоритм управления перегрузкой, который позволяет быстро восстанавливать потерянные пакеты.
Без FRR, если пакет потерян, TCP будет использовать таймер, требующий приостановки передачи. Во время этой паузы новые или дублированные пакеты не отправляются. При использовании FRR, если получатель получает сегмент вне очереди, он немедленно отправляет дубликат подтверждения отправителю. Если передатчик получает три повторяющихся подтверждения, он предполагает, что сегменты данных, указанные в подтверждении, отсутствуют, и немедленно повторно передает эти недостающие сегменты данных.
С FRR нет задержки из-за пауз, необходимых при повторных передачах. Быстрая повторная передача и быстрое восстановление (FRR) работают наиболее эффективно при потере отдельных пакетов. Это не очень хорошо работает, когда за короткий промежуток времени теряется несколько пакетов данных.
24. Что такое липкий мешок?
При изучении Java NIO вы можете обнаружить, что если клиент постоянно отправляет пакеты данных на сервер, данные, полученные сервером, будут казаться слипшимися.
Исходя из двух вышеуказанных моментов, при использовании TCP для передачи данных есть вероятность залипания или распаковки. Пакет данных содержит информацию о двух пакетах данных, отправленных отправителем, и это явление называется липкими пакетами.
Принимающая сторона получает два пакета данных, но эти два пакета данных либо неполные, либо имеют лишний кусок, в этом случае происходит распаковка и залипание. Проблема распаковки и склеивания очень затрудняет обработку получателем, поскольку он не может различить полный пакет.
25. Как генерируется липкий TCP-пакет?
- Отправитель генерирует липкие пакеты
- Получатель генерирует липкие пакеты
Когда получатель использует протокол TCP для получения данных, процесс выглядит следующим образом: данные отправляются получателю и передаются из нижней части сетевой модели на транспортный уровень.Обработка протокола TCP транспортного уровня заключается в следующем. поместите его в приемный буфер, а затем прикладной уровень будет активно получать его (язык C использует такие функции, как recv, read и т. д.); в это время будет проблема, то есть функция чтения данных, которую мы вызов в программе не может вовремя вынуть данные в буфер, а следующие данные приходят снова и какая-то часть Конец буфера помещается в него липким пакетом, когда мы читаем данные. (скорость размещения данных> скорость получения данных прикладного уровня)
26. Как решить распаковку и приклеивание?
Как правило, существует два общих решения механизма субподряда:
27. Знаете ли вы что-нибудь о кодах состояния HTTP?
- 1ХХ информация
- 2ХХ успехов
- 3XX редирект
- 4XX Ошибка клиента
- 5ХХ ошибка сервера
28. Что представляют собой коды состояния HTTP 301 и 302? Какая разница?
301 и 302 — это кодировка статуса HTTP, и оба означают, что URL-адрес был передан.
- разница:
29. В чем разница между прямой и переадресацией?
Forward and Redirect перенаправляет запрос от имени двумя способами: прямая и непрямая переадресация на пересылку.
Возьмем простой пример:
30. Что такое методы HTTP?
Первая строка сообщения запроса, отправленного клиентом, является строкой запроса, которая включает поле метода.
31. Скажите, в чем разница между GET и POST?
GET и POST по сути являются HTTP-запросами, но их функции определены и адаптированы, и они адаптированы к соответствующим сценариям.
Существенная разница: GET — это просто HTTP-запрос, а POST сначала отправляет заголовок запроса, а затем тело запроса, что на самом деле представляет собой два запроса.
32. Процесс ввода URL-адреса в браузере для отображения домашней страницы?
1. Разрешение DNS: браузер запрашивает DNS для получения IP-адреса, соответствующего доменному имени: конкретный процесс включает в себя поиск браузером собственного кеша DNS, поиск в кеше DNS операционной системы, чтение локального файла хоста и запрос локального DNS. сервер. Для запроса к локальному DNS-серверу, если запрашиваемое доменное имя включено в ресурсы зоны локальной конфигурации, результат разрешения возвращается клиенту для завершения разрешения доменного имени (это разрешение является полномочным); если доменное имя для запроса находится не в разрешении зоны локального DNS-сервера, но сервер кэшировал это отношение сопоставления URL-адресов, затем вызовите сопоставление этого IP-адреса для завершения разрешения доменного имени (это разрешение не является полномочным). Если локальный сервер доменных имен не кэширует связь сопоставления URL-адресов, он инициирует рекурсивный или итеративный запрос в соответствии со своими настройками;
2. TCP-соединение: после того, как браузер получает IP-адрес, соответствующий доменному имени, браузер запрашивает сервер для установления связи и инициирует трехстороннее рукопожатие;
3. Отправить HTTP-запрос: после установления TCP-соединения браузер отправляет HTTP-запрос на сервер;
4. Сервер обрабатывает запрос и возвращает HTTP-сообщение: сервер получает запрос, сопоставляет его с конкретным обработчиком запросов для обработки в соответствии с параметрами пути и возвращает результат обработки и соответствующее представление в браузер;
5. Браузер анализирует и отображает страницу: браузер анализирует и отображает представление.Если он встречает ссылки на статические ресурсы, такие как файлы js, css и изображения, он повторяет вышеуказанные шаги и запрашивает эти ресурсы с сервера; данные отображают страницу и, наконец, представляют полную страницу пользователю.
6. Соединение завершается.
33. Что такое процесс разрешения DNS?
34. Расскажите о своем понимании кэширования доменных имен?
Чтобы повысить эффективность DNS-запросов, снизить нагрузку на сервер и уменьшить количество пакетов DNS-запросов в Интернете, на сервере доменных имен широко используется кэш для хранения недавно запрошенных доменных имен и записей, откуда получена информация о сопоставлении доменных имен.
Поскольку привязки имени к адресу меняются не очень часто, чтобы содержимое кэша оставалось правильным, сервер имен должен устанавливать таймер для каждого элемента и обрабатывать элементы старше разумного промежутка времени (например, два дня для каждого элемента). Когда сервер доменных имен удалил определенную информацию из кэша и получил запрос на запрос информации, он должен снова привязать эту информацию к серверу доменных имен, авторизованному для управления элементом. Когда авторитетный сервер отвечает на запрос запроса, в ответе указывается значение времени, для которого действительна привязка. Увеличение этого значения времени может снизить нагрузку на сеть, а уменьшение этого значения времени может улучшить правильность разрешения доменных имен.
Кэширование требуется не только на локальном сервере имён, но и на хосте. Многие хосты загружают всю свою базу данных имен и адресов с локального сервера при запуске, поддерживают кеширование своих последних использованных доменных имен и используют серверы имен только в том случае, если имя не найдено в кеше. Хосты, которые поддерживают локальные базы данных серверов имен, должны периодически проверять серверы имен на наличие новой информации о сопоставлении, а хосты должны удалять недействительные записи из своих кэшей. Поскольку изменения доменных имен происходят нечасто, большинство торговых точек могут поддерживать согласованность базы данных без особых усилий.
35. Расскажите о своем понимании длинного и короткого соединения HTTP? К каким сценариям он применим?
Короткие соединения используются по умолчанию в HTTP/1.0. То есть каждый раз, когда клиент и сервер выполняют HTTP-операцию, устанавливается соединение, которое разрывается при завершении задачи. Когда веб-страница определенного HTML или другого типа, к которой обращается клиентский браузер, содержит другие веб-ресурсы (такие как: файлы JavaScript, файлы изображений, файлы CSS и т. д.), каждый раз, когда встречается такой веб-ресурс, браузер перезагружает Установите сеанс HTTP.
Начиная с HTTP/1.1, постоянные соединения используются по умолчанию для поддержания характеристик соединения. Эта строка кода будет добавлена в заголовок ответа с использованием протокола HTTP с длинным подключением.
Connection:keep-alive
В случае использования длительного соединения при открытии веб-страницы TCP-соединение, используемое для передачи HTTP-данных между клиентом и сервером, не будет закрыто, при повторном обращении клиента к серверу он продолжит использовать установленное связь. .
Keep-Alive не удерживает соединение вечно, у него есть время удержания, которое можно установить в различном серверном ПО (например, в Apache). Реализация постоянного соединения требует, чтобы и клиент, и сервер поддерживали постоянные соединения.
36. Расскажите об основных изменениях HTTP 1.0, 1.1 и 1.2?
- Основные изменения в HTTP 1.1:
Основные изменения HTTP2.0:
37. Каков рабочий процесс HTTPS?
3.1 Проверить действительность сертификата;
3.2 Если сертификат проверен, браузер сгенерирует строку случайных чисел и зашифрует ее с помощью открытого ключа в сертификате;
3.3 Рассчитайте сообщение рукопожатия с помощью согласованного алгоритма хеширования, зашифруйте его сгенерированным ключом и вместе отправьте на сервер.
4.1 Используйте закрытый ключ для анализа пароля, используйте пароль для анализа сообщения рукопожатия и проверьте, соответствует ли хеш-значение значению, отправленному браузером;
4.2 Шифровать сообщения с помощью ключей;
38. В чем разница между HTTP и HTTPS?
39. Каковы преимущества и недостатки HTTPS?
- преимущество:
- недостаток:
40. Что такое цифровая подпись?
41. Что такое цифровой сертификат?
При симметричном шифровании обе стороны используют открытый ключ для расшифровки. Хотя цифровая подпись может гарантировать, что данные не будут заменены, данные шифруются открытым ключом.Если открытый ключ также заменен, данные все равно могут быть подделаны, поскольку пользователь не знает, что открытый ключ, предоставленный другим партия на самом деле фейк. Следовательно, чтобы убедиться, что открытый ключ отправителя является истинным, центр сертификации ЦС будет нести ответственность за выдачу сертификата, а открытый ключ внутри гарантированно будет истинным.Когда пользователь запрашивает сервер, сервер выдает сертификат пользователю, и этот сертификат получен через встроенный сертификат системы.
42. Что такое симметричное шифрование и асимметричное шифрование?
Шифрование с симметричным ключом относится к методу использования одного и того же ключа для шифрования и дешифрования.Самой большой проблемой в этом методе является проблема передачи ключа, то есть как безопасно отправить ключ другой стороне.
Под асимметричным шифрованием понимается использование пары асимметричных ключей, а именно: открытого ключа и закрытого ключа.Открытый ключ может быть выпущен по желанию, а вот закрытый ключ известен только вам. Сторона, отправляющая зашифрованный текст, использует открытый ключ другой стороны для обработки шифрования, и после того, как другая сторона получит зашифрованную информацию, она расшифрует ее, используя свой собственный закрытый ключ.
Поскольку метод асимметричного шифрования не требует отправки закрытого ключа для расшифровки, безопасность может быть гарантирована. Но по сравнению с симметричным шифрованием оно очень медленное, поэтому мы по-прежнему используем симметричное шифрование для передачи сообщений, но ключ, используемый в симметричном шифровании, может быть отправлен через асимметричное шифрование.