Prosty serwer HTTP w C


(WooQash) #1

Mam do zrobienia prosty serwer HTTP w C, lecz nie wiem jak się za to zabrać.

Wiem, że muszę utworzyć gniazdo TCP, ale czy to wystarczy aby po wpisaniu adresu w przeglądarce połączyło się z tym serwerem? W jaki sposób mam wysyłać dane do przeglądarki? Normalnie send() oraz recv()?


(enedil) #2

Dokładnie tak.

Musisz tylko respektować reguły tworzenia zapytań HTTP.


(Rolek0) #3

Musisz jeszcze przywiązać gniazdo do portu, na którym chcesz słuchać i włączyć nasłuchiwanie. Potem musisz akceptować przychodzące połączenia.

Tak.

http://www.asawicki.info/Mirror/Beej_s%20Guide%20to%20Network%20Programming%20PL/bgnet.pdf

http://beej.us/guide/bgnet/

https://msdn.microsoft.com/en-us/library/ms741394

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol


(bachus) #4

Na to też oczywiście rzuciłeś okiem? https://tools.ietf.org/html/rfc2616


(ktoś tam) #5

Ogólnie serwer to zwykły program reagujący na otrzymane zapytania. Serwer HTTP jedynie odpowiada zgodnie ze standardem HTTP. Dla HTTP standardowy port to 80, a dla HTTPS 443, możesz oczywiście używać innych, ale wtedy musisz podawać przeglądarce port, z którym ma się łączyć. Polecam poradnik z linku Rolek0. Później wszystko, czego będziesz potrzebował to rfc2616.

Tutaj masz tak w skrócie:

http://cpp0x.pl/artykuly/?id=66

Co do portów:

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml