TCP TCP/IP HTTP HTTPS

TCP/IP

1. Что такое трехстороннее рукопожатие TCP-соединения

Первое рукопожатие: клиент отправляет пакет синхронизации (syn=j) на сервер и переходит в состояние SYN_SEND, ожидая подтверждения от сервера; Второе рукопожатие: сервер получает син-пакет и должен подтвердить SYN клиента (ack=j+1), и в то же время отправляет SYN-пакет (syn=k), то есть SYN+ACK-пакет, в это время время перехода сервера в состояние SYN_RECV; Третье рукопожатие: клиент получает от сервера пакет SYN+ACK и отправляет на сервер пакет подтверждения ACK (ack=k+1).После отправки пакета клиент и сервер переходят в состояние ESTABLISHED и завершают трехстороннее рукопожатие. Пакет, передаваемый в процессе рукопожатия, не содержит данных.После завершения трехэтапного рукопожатия клиент и сервер официально начинают передачу данных. В идеале, как только TCP-соединение установлено, TCP-соединение будет поддерживаться до тех пор, пока какая-либо из сторон не закроет соединение. При разрыве соединения и сервер, и клиент могут активно инициировать запрос на разрыв TCP-соединения.Процесс отключения требует «четырехстороннего рукопожатия» (процесс не детализирован, т. е. сервер и клиент взаимодействуют , и окончательно определить отключение)

2. Шаги по установке сетевого подключения с помощью Socket

Для установления соединения Socket требуется по крайней мере пара сокетов, один из которых работает на стороне клиента, называется ClientSocket, а другой работает на стороне сервера, называется ServerSocket. Процесс соединения между сокетами делится на три этапа: мониторинг сервера, запрос клиента и подтверждение соединения. 1. Мониторинг сервера: сокет на стороне сервера не находит конкретный клиентский сокет, но находится в состоянии ожидания соединения, отслеживает состояние сети в режиме реального времени и ожидает запроса на соединение от клиента. 2. Запрос клиента: относится к запросу на подключение, сделанному сокетом клиента, а целью для подключения является сокет сервера. Для этого сокет клиента должен сначала описать сокет сервера, к которому он хочет подключиться, указать адрес и номер порта сокета на стороне сервера, а затем сделать запрос на подключение к сокету на стороне сервера. 3. Подтверждение соединения: Когда сокет на стороне сервера отслеживает или получает запрос на соединение от сокета на стороне клиента, он отвечает на запрос сокета на стороне клиента, устанавливает новый поток и отправляет описание сокета на стороне сервера. клиент, как только клиент подтверждает это описание, две стороны официально устанавливают соединение. Сокет на стороне сервера продолжает находиться в состоянии прослушивания и продолжает получать запросы на подключение от других сокетов на стороне клиента.

3. Характеристики HTTP-ссылок

Протокол HTTP — это протокол передачи гипертекста (протокол передачи гипертекста), который является основой веб-сетей и одним из наиболее часто используемых протоколов для сетей мобильных телефонов.Протокол HTTP — это приложение, созданное поверх протокола TCP. Наиболее примечательной особенностью HTTP-соединений является то, что каждый запрос, отправленный клиентом, требует, чтобы сервер отправил ответ, и соединение будет активно разорвано после завершения запроса. Процесс от установления соединения до его закрытия называется «одноразовым соединением».

4. TCP и UDP

1. TCP является канало-ориентированным.Хотя небезопасный и нестабильный характер сети определяет, что никакое количество рукопожатий не может гарантировать надежность соединения, трехстороннее рукопожатие TCP является минимальным (фактически оно гарантируется для большого степени) для обеспечения надежности соединения; UDP не ориентирован на установление соединения. UDP не устанавливает соединение с другой стороной перед передачей данных и не отправляет сигнал подтверждения на полученные данные. Отправитель не знает, является ли данные будут получены правильно, и, конечно, не нужно повторно передавать.Поэтому UDP является протоколом без установления соединения и ненадежным протоколом передачи данных. 2. Также из-за характеристик, упомянутых в 1, накладные расходы UDP меньше, а скорость передачи данных выше.Поскольку нет необходимости подтверждать отправленные и полученные данные, производительность UDP в реальном времени лучше. Зная разницу между TCP и UDP, нетрудно понять, почему MSN, использующий протокол передачи TCP, работает медленнее, чем QQ, использующий UDP для передачи файлов, но нельзя сказать, что связь QQ небезопасна, поскольку программисты могут вручную передавать данные UDP. Например, отправитель нумерует каждый пакет данных, а затем получатель проверяет его.Даже в этом случае UDP не использует «трехстороннее рукопожатие», подобное TCP, при инкапсуляции базового протокола.недостижимая эффективность передачи.

5. Код состояния, возвращаемый браузером

1xx表示请求已被接受,但需要后续处理。 2xx请求已成功被服务器接收、理解、并接受。 3xx这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向, 重定向目标在本次响应的Location头字段中指明。 4xx这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。 除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体。 5xx这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。 并且响应消息体中应当给出理由,除非是HEAD请求。 Общие коды состояния:

  • 200 OK Сервер успешно обработал запрос (это максимум, что мы видели)
  • 301/302 Перемещено навсегда Запрошенный URL был перемещен. Ответ должен содержать URL-адрес местоположения, указывающий, где сейчас находится ресурс.
  • 304 Not Modified (Не изменено) Кэшированные ресурсы клиента обновлены, и клиент должен использовать кеш
  • 404 Not Found Ресурс не найден
  • 501 Internal Server Error Сервер обнаружил ошибку, из-за которой он не смог обслужить запрос.

6. Разница между HTTP и HTTPS

http — это протокол передачи гипертекста, информация передается в виде открытого текста, а https — безопасный протокол передачи с шифрованием ssl. http и https используют совершенно разные методы подключения и используют разные порты: первый — 80, а второй — 443. HTTP-соединения просты и не имеют состояния. Протокол HTTPS — это сетевой протокол, созданный на основе протокола SSL+HTTP, который может выполнять зашифрованную передачу и аутентификацию личности, что является более безопасным, чем протокол http.