verschil tussen socket-programmering en Http-programmering

Wat is het verschil tussen socket-programmering en Http-programmering? kan iemand me alsjeblieft helpen?


Antwoord 1, autoriteit 100%

HTTP is een applicatieprotocol. Het betekent in feite dat HTTP zelf niet kan worden gebruikt om informatie van/naar een extern eindpunt te transporteren. In plaats daarvan vertrouwt het op een onderliggend protocol dat in het geval van HTTP TCP is.

Je kunt meer lezen over OSI-lagenals je geïnteresseerd bent.

Sockets daarentegen zijn een API die de meeste besturingssystemen bieden om met het netwerk te kunnen praten. De socket-API ondersteunt verschillende protocollen vanaf de transportlaag en lager.

Dat betekent dat als je TCP wilt gebruiken, je sockets gebruikt. Maar je kunt ook sockets gebruiken om te communiceren via HTTP, maar dan moet je berichten decoderen/coderen volgens de HTTP-specificatie (RFC2616). Omdat dat voor de meeste ontwikkelaars een enorme taak kan zijn, hebben we ook clients klaargemaakt in onze ontwikkelaarsframeworks (zoals .NET), bijvoorbeeld de WebClientof de HttpWebRequest-klassen.


Antwoord 2, autoriteit 24%

Met HTTP gebruik je een HTTP-protocol op hoog niveau (dat bovenop een socket werkt). Het is sessieloos, wat betekent dat u een tekstverzoek verzendt zoals GET google.comen in ruil daarvoor tekst of binaire gegevens ontvangt, nadat die verbinding is gesloten (in HTTP 1.1 zijn permanente verbindingen beschikbaar)

MSDN-voorbeeld:

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 ();
} 

Met sockets ga je op een lager niveau en controleer je daadwerkelijk de verbinding en verzend/ontvang je onbewerkte bytes.

Voorbeeld:

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});

Antwoord 3, autoriteit 17%

HTTP-verbinding

  • HTTP-verbinding is een protocol dat op een socket draait.
  • HTTP-verbinding is een abstractie van een netwerkverbinding op een hoger niveau.
  • Met HTTP-verbinding zorgt de implementatie voor al deze details op een hoger niveau en verzendt eenvoudig een HTTP-verzoek (een header
    informatie) en ontvang HTTP-antwoord van de server.

Socketverbinding

  • Socket wordt gebruikt om gegevens tussen systemen te transporteren. Het verbindt eenvoudig twee systemen met elkaar, een IP-adres is het adres van de
    machine via een IP-gebaseerd netwerk.
  • Met socketverbinding kun je je eigen protocol ontwerpen voor netwerkverbinding tussen twee systemen.
  • Met Socket-verbinding moet je zorgen voor alle details op een lager niveau van een TCP/IP-verbinding.

Antwoord 4, autoriteit 2%

Om ervoor te zorgen dat twee eindpunten met elkaar kunnen praten, moeten ze allebei een reeks regels volgen. op de computer wordt deze reeks regels protocol genoemd.

bijvoorbeeld voor een eindpunt zoals een browser en voor een ander, zoals een webserver, moeten ze allebei een reeks regels of protocol volgen met de naam http om te kunnen communiceren en informatie te verhandelen. dus op het world wide web en dit soort communicatie kunnen alleen degenen die praten op basis van dit http-protocol met succes met elkaar praten.

socket is slechts een eindpunt. het zou het http-protocol kunnen volgen om in een communicatie in www te komen als een client die een pagina opvraagt, of het kan fungeren als een server die naar verbindingen luistert. of misschien kan het een andere reeks regels of protocollen volgen, zoals ssh, ftp en op andere manieren communiceren.

nu kun je bij het programmeren van sockets een socket maken, deze binden aan een ip-adres en een poortnummer om als poortnummer te fungeren en hem vertellen http, ssh, ftp of wat je maar wilt op basis van de communicatie die je wilt, te volgen om je stopcontact voor te gebruiken.


Antwoord 5

HTTP-programmering of HTTP-verzoek wordt gebruikt voor losse koppeling en platform-neutrale taaltechnologiecommunicatie waarbij als socket-programmering wordt gebruikt waar het systeem een ​​taal-specificatieprotocol heeft

Other episodes