리눅스 http 서버 관련 질문입니다. 도와주세요ㅠㅠ

zzd1244의 이미지

안녕하세요. 리눅스 http 서버 공부를 하고 있습니다.

thttpd 프로그램 실행을 통해서 브라우저에서 접속하는 거는 됩니다.

여기서 이제 소켓 프로그래밍을 해야하는데 thttpd와 소켓 c프로그램을 어떻게 연결해야할지 감이 안옵니다.

http 서버에서 소켓 프로그램을 사용하려는 게 애초에 말이 안되는 건가요?

김정균의 이미지

thttpd 는 웹서버일테고, 소켓 프로그램을 만든다는 것은 http client 를 만든다는 것이겠죠. http protocol 에 대한 rfc 를 참조 하셔서 만드시면 됩니다.

기본적으로, http v1.0 또는 v1.1 은 plain/text 로 통신을 하게 됩니다.

client 에서 서버로

GET /paht HTTP/1.1
Host: domain.com
Connection: close => 여기서 \r\n 2번

위와 같어 서버로 보내주면, 서버가 위의 요청에 대한 응답을 보내게 됩니다.
이게 가장 기본이고, 여기서 request header 와 reply header 에 대하여 자료를 찾아보셔야 할 것이고, 더 나아간다면 ssl 통신이나 http2 protocol 까지 확장해 볼 수 있습니다.

뭐 하지만 library 를 직접 만들거나, 또는 극한의 성능 튜닝을 할 것 이 아니라면, open 되어 있는 library 같은 것을 가져다가 쉽게 만들 수 있습니다. libcurl, libhttp 등 http protocol 을 위한 많은 librayr 들이 있습니다. libcurl 이 꽤 강력하니 추천 합니다.