Jaka jest różnica między programowaniem w gniazdach a programowaniem za pomocą protokołu HTTP? czy ktoś może pomóc, proszę?
źródło
Jaka jest różnica między programowaniem w gniazdach a programowaniem za pomocą protokołu HTTP? czy ktoś może pomóc, proszę?
HTTP to protokół aplikacji. Zasadniczo oznacza to, że sam HTTP nie może być używany do przesyłania informacji do / ze zdalnego punktu końcowego. Zamiast tego opiera się na podstawowym protokole, którym w przypadku HTTP jest TCP.
Możesz przeczytać więcej o warstwach OSI, jeśli jesteś zainteresowany.
Z drugiej strony gniazda są API, które większość systemów operacyjnych zapewnia, aby móc komunikować się z siecią. Interfejs API gniazda obsługuje różne protokoły od warstwy transportowej i w dół.
Oznacza to, że jeśli chcesz używać TCP, używasz gniazd. Ale możesz również używać gniazd do komunikacji za pomocą protokołu HTTP, ale wtedy musisz dekodować / zakodować wiadomości zgodnie ze specyfikacją HTTP ( RFC2616 ). Ponieważ może to być ogromne zadanie dla większości programistów, mamy również gotowych klientów w naszych frameworkach deweloperskich (takich jak .NET), na przykład klasy WebClient
lub HttpWebRequest
.
W przypadku HTTP używasz protokołu HTTP wysokiego poziomu (który działa na górze gniazda). Jest bezsesyjny, co oznacza, że wysyłasz żądanie tekstowe, takie jak
GET google.com
i otrzymujesz w zamian tekst lub dane binarne, po zamknięciu tego połączenia (w HTTP 1.1 dostępne są trwałe połączenia)Przykład MSDN:
Dzięki gniazdom przechodzisz na niższy poziom i faktycznie kontrolujesz połączenie i wysyłasz / odbierasz surowe bajty.
Przykład:
źródło
Connection
nagłówka;)źródło
Programowanie HTTP lub żądanie HTTP są używane do luźnego łączenia i komunikacji w języku neutralnym dla platformy, gdzie jako programowanie w gniazdach jest używane, gdy system ma protokół specyfikacji języka
źródło
aby dwa punkty końcowe mogły ze sobą rozmawiać, oba powinny przestrzegać zestawu reguł. w komputerze ten zestaw reguł nazywa się protokołem.
na przykład w przypadku punktu końcowego, takiego jak przeglądarka, i innego, takiego jak serwer WWW, oba powinny przestrzegać zestawu reguł lub protokołu zwanego http, aby móc komunikować się i handlować informacjami. tak więc w sieci WWW i tego rodzaju komunikacji tylko ci, którzy mówią w oparciu o ten protokół http, mogą z powodzeniem rozmawiać ze sobą.
gniazdo to tylko punkt końcowy. może podążać za protokołem http, wchodząc w komunikację w www jako klient żądający strony lub może działać jako serwer nasłuchujący połączeń. a może mógłby przestrzegać innego zestawu reguł lub protokołów, takich jak ssh, ftp i komunikować się na inne sposoby.
teraz w programowaniu gniazd możesz stworzyć gniazdo, powiązać je z adresem IP i numerem portu, aby działało jako numer portu i powiedzieć mu, aby podążał za http, ssh, ftp lub cokolwiek chcesz, w oparciu o komunikację, której chcesz używać gniazdo dla.
źródło