В чем разница между программированием сокетов и программированием 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:
public static void Main (string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Console.WriteLine ("Content length is {0}", response.ContentLength);
Console.WriteLine ("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream ();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);
Console.WriteLine ("Response stream received.");
Console.WriteLine (readStream.ReadToEnd ());
response.Close ();
readStream.Close ();
}
С сокетами вы переходите на уровень ниже и фактически контролируете соединение и отправляете / получаете необработанные байты.
Пример:
var remoteEndpoint=new IPEndPoint(IPAddress.Loopback, 2345);
var socket = new Socket(remoteEndpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(remoteEndpoint);
socket.Send(new byte[] {1, 2, 3, 4});
Connectionзаголовок;)
HTTP-соединение
- HTTP-соединение - это протокол, работающий на сокете.
- HTTP-соединение - это абстракция сетевого соединения более высокого уровня.
- С HTTP-соединением реализация заботится обо всех этих высокоуровневых деталях и просто отправляет HTTP-запрос (некоторую информацию заголовка) и получает HTTP-ответ от сервера.
Подключение к розетке
- Socket используется для передачи данных между системами. Он просто соединяет две системы вместе, IP-адрес - это адрес машины в IP-сети.
- Используя сокетное соединение, вы можете разработать свой собственный протокол для сетевого соединения между двумя системами.
- При подключении через сокет вам необходимо позаботиться обо всех деталях нижнего уровня подключения TCP / IP.
HTTP-программирование или HTTP-запрос используется для слабой связи и платформенно-нейтральной языковой технологической связи, где как программирование сокетов используется, когда система имеет протокол спецификации языка
чтобы две конечные точки могли общаться друг с другом, они обе должны следовать набору правил. в компьютере этот набор правил называется протоколом.
например, для конечной точки, такой как браузер, и для другой, такой как веб-сервер, они оба должны следовать набору правил или протоколу, называемому http, чтобы иметь возможность общаться и обмениваться информацией. так что во всемирной паутине и при таком виде общения только те, кто общаются на основе этого протокола http, могут успешно общаться друг с другом.
сокет - это просто конечная точка. он может следовать протоколу http, чтобы войти в коммуникацию в www в качестве клиента, запрашивающего страницу, или он может действовать как сервер, прослушивающий соединения. или, может быть, он мог бы следовать другому набору правил или протоколов, таких как ssh, ftp, и взаимодействовать другими способами.
теперь в программировании сокетов вы можете создать сокет, привязать его к IP-адресу и номеру порта, чтобы он действовал как номер порта и сказал ему следовать http, ssh, ftp или как угодно, в зависимости от связи, которую вы хотите использовать. розетка для.