1. TCP/IP — это группа протоколов, которую можно разделить на три уровня: сетевой уровень, транспортный уровень и прикладной уровень.
На сетевом уровне существуют протокол IP, протокол ICMP, протокол ARP, протокол RARP и протокол BOOTP.
На транспортном уровне есть протокол TCP и протокол UDP.
На уровне приложений существуют такие протоколы, как FTP, HTTP, TELNET, SMTP и DNS.
Следовательно, HTTP сам по себе является протоколом, протоколом передачи гипертекста с веб-сервера в локальный браузер.
2. Протокол HTTP основан на модели запрос/ответ. Сначала клиент устанавливает TCP-соединение с сервером и отправляет серверу запрос, который включает метод запроса, URI, версию протокола и соответствующие сообщения в стиле MIME. Сервер отвечает строкой состояния, содержащей версию протокола сообщения, коды успеха и неудачи, а также соответствующий MIME-стиль сообщения.
HTTP/1.0 устанавливает новое TCP-соединение для каждого HTTP-запроса/ответа, поэтому странице, содержащей HTML-содержимое и изображения, потребуется установить несколько кратковременных TCP-соединений. Для установления TCP-соединения потребуется 3 рукопожатия.
Кроме того, чтобы получить соответствующую скорость передачи, TCP необходимо потратить дополнительное время двустороннего соединения (RTT). Установление каждого канала требует такого рода регулярных накладных расходов и не несет в себе фактических полезных данных, а лишь обеспечивает надежность канала. Таким образом, HTTP/1.1 предлагает метод реализации устойчивых ссылок. HTTP/1.1 устанавливает TCP-соединение только один раз и использует его повторно для передачи серии сообщений запроса/ответа, тем самым уменьшая количество установленных соединений и накладные расходы на обычные соединения.

3. Вывод: хотя HTTP сам по себе является протоколом, в конечном итоге он основан на TCP. Однако в настоящее время некоторые люди изучают протокол HTTP, основанный на смеси TCP+UDP.
Что такое сокет?
Сокет — это промежуточный уровень абстракции программного обеспечения для связи между уровнем приложений и семейством протоколов TCP/IP, а также набор интерфейсов. В режиме разработки Socket фактически является фасадным режимом, который скрывает сложное семейство протоколов TCP/IP за интерфейсом Socket. Для пользователей достаточно набора простых интерфейсов, а Socket организует данные в соответствии с указанным протоколом.





