본문 바로가기

C언어/Tiny 웹 서버3

Tiny 구현 main 함수웹 서버가 클라이언트의 요청을 처리하기 위한 전형적인 서버 루프를 구현// argv: 문자열 포인터의 배열int main(int argc, char **argv) { // listenfd: 리스팅 소켓 파일 드스크립터, connfd: 클라와 연결을 위한 소켓 파일 디스크립터 int listenfd, connfd; // 호스트 및 포트 저장할 버퍼 char hostname[MAXLINE], port[MAXLINE]; // 클라 주소 길이 저장 변수 socklen_t clientlen; // 클라 주소 저장할 구조체 struct sockaddr_storage clientaddr; /* 명령줄 인수 확인 (하나의 인수만 요구 (제목 포함 2))*/ if (argc != 2) { .. 2024. 9. 18.
Tiny 웹 서버 개요 Tiny 웹 서버는 네트워크 프로그래밍의 핵심 개념을 통합하여 실제 웹 서버의 기본적인 기능을 구현한 간단한 서버이다. 목적 :웹 서버 구현의 핵심 개념을 보여주기 위해 설계.프로세스 제어, 유닉스 I/O 작업, 소켓 사용, HTTP 요청 처리 개념핵심 구성 요소 :프로세스 제어 : 들어오는 연결을 처리하기 위해 새로운 프로세스 생성하며,기본적인 프로세스 생성 및 관리유닉스 I/O : 데이터 읽기 및 쓰기소켓 인터페이스 : 네트워크 연결 관리하기 위해 구현HTTP 프로토콜 : HTTP 요청을 파싱하고 응답을 처리하여 정적 컨텐츠와동적 CGI 요청을 모두 처리 주요 함수 및 개념Open_listenfd :리스닝 소켓을 생성하고 지정된 포트에 바인딩. 서버가 들어오는 연결을 수락할 준비Accept :클라이언.. 2024. 9. 17.
network 개요 client : 컴퓨터 노트북 핸드폰server : 공유기, DNS, IP할당기 client 와 server 통신 방법도메인 입력도메인 네임에 해당하는 IP 주소 찾음HTTP 프로토콜을 사용해 URL 정보와 IP주소를 포함하는 HTTP 요청(Request) 메시지 생성.메시지는 패킷으로 분할되어 TCP 프로토콜을 사용해 인터넷 망을 통해 해당 IP주소의 컴퓨터(서버)로 전송메시지 받은 서버는 웹 페이지 URL정보 중 PATH와 HTTP Method에 맞는 액션 취함생성된 응답 데이터는 다시 HTTP 프로토콜을 써서 메시지를 만들고 클라이언트로 전송도착한 메시지는 브라우저에 의해 rendering 과정을 거쳐 출력  HTTP 프로토콜  특징단방향성서버는 클라이언트가 요청을 보내야만 응답 가능비연결성클라이언.. 2024. 9. 16.