В чем разница между программированием сокетов и программированием Http? может кто-нибудь помочь, пожалуйста?
источник
В чем разница между программированием сокетов и программированием Http? может кто-нибудь помочь, пожалуйста?
HTTP - это протокол приложения. По сути, это означает, что сам протокол HTTP не может использоваться для передачи информации в / из удаленной конечной точки. Вместо этого он полагается на базовый протокол, которым в случае HTTP является TCP.
Вы можете узнать больше об уровнях OSI, если вам интересно.
С другой стороны, сокеты - это API, предоставляемый большинством операционных систем для связи с сетью. API сокетов поддерживает разные протоколы, начиная с транспортного уровня и ниже.
Это означает, что если вы хотите использовать TCP, вы используете сокеты. Но вы также можете использовать сокеты для связи с помощью HTTP, но тогда вам придется декодировать / кодировать сообщения в соответствии со спецификацией HTTP ( RFC2616 ). Поскольку это может быть огромной задачей для большинства разработчиков, мы также получили готовых клиентов в наших фреймворках для разработчиков (например, .NET), например классы WebClient
или HttpWebRequest
.
С HTTP вы используете протокол HTTP высокого уровня (который работает поверх сокета). Он не требует сеанса, что означает, что вы отправляете текстовый запрос, например,
GET google.com
и получаете взамен текстовые или двоичные данные после закрытия этого соединения (в HTTP 1.1 доступны постоянные соединения)Пример MSDN:
С сокетами вы переходите на уровень ниже и фактически контролируете соединение и отправляете / получаете необработанные байты.
Пример:
источник
Connection
заголовок;)источник
HTTP-программирование или HTTP-запрос используется для слабой связи и платформенно-нейтральной языковой технологической связи, где как программирование сокетов используется, когда система имеет протокол спецификации языка
источник
чтобы две конечные точки могли общаться друг с другом, они обе должны следовать набору правил. в компьютере этот набор правил называется протоколом.
например, для конечной точки, такой как браузер, и для другой, такой как веб-сервер, они оба должны следовать набору правил или протоколу, называемому http, чтобы иметь возможность общаться и обмениваться информацией. так что во всемирной паутине и при таком виде общения только те, кто общаются на основе этого протокола http, могут успешно общаться друг с другом.
сокет - это просто конечная точка. он может следовать протоколу http, чтобы войти в коммуникацию в www в качестве клиента, запрашивающего страницу, или он может действовать как сервер, прослушивающий соединения. или, может быть, он мог бы следовать другому набору правил или протоколов, таких как ssh, ftp, и взаимодействовать другими способами.
теперь в программировании сокетов вы можете создать сокет, привязать его к IP-адресу и номеру порта, чтобы он действовал как номер порта и сказал ему следовать http, ssh, ftp или как угодно, в зависимости от связи, которую вы хотите использовать. розетка для.
источник