본문 바로가기

전체 글

(291)
tiny 웹서버 구현 tiny 웹서버 구현HTTP 프로토콜 지원정적 & 동적 콘텐츠 전달버퍼사용한 동기 I/O다양한 오류 처리간단한 web server 구현해보는 과제! AWS 포트 번호를 열어줘야 했다. [인스턴스] - [인바운드 규칙 편집]DB연결은 해줄 필요 없으니, 8080 포트랑 HTTP 포트만 열어주면 된다.🔎 HTTP1.1버전을 client가 보내지만, tiny는 HTTP1.0버전을 채택한 이유는?일부 오래도니 서버나 proxysms HTTP/1.1을 지원하지 않아 더 안정적으로 서비스를 지원하기 위해 1.0버전 채택! 낮은 버전을 채택함으로서 오버헤드를 줄일 수 있다. 🔎 HTTP/1.0과 HTTP/1.1 차이점HTTP/1.0 : 1996년부터 사용되고 있는 초기의 보다 간단한 버전이다. 1 GET / 1 Co..
Network, 통신 Model Network, 통신 Model 통신 절차 각 계층을 나눠 표현한 것 OSI 7 Layer : 표준 통신 모델(참조 모델) TCP/IP : 비표준 모델(실사용 모델) Client : 컴퓨터, 노트북, 핸드폰, 아이패드 등 Server : 공유기, DNS, IP할당기(DHCP), 시간관리기(NTP), 게이트 웨이Browser --- request ---> Server Browser HTTPS 등장 📌 HTTP Method클라이언트가 웹 서버에게 요청의 목적이나 종류를 알리는 수단 GET, POST, PUT, PATCH, DELETE 📌 HTTP Status Code클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주기 위한 정보 404 Not Found, ... 전반적인 통신 흐름7계층응용계층(Applic..
명시적 가용 리스트 Explicit Free List 명시적 가용 리스트 Explicit Free List 요소를 저장하기 위해 명시적으로 메모리 공간(Array, Linked List) 할당 장점 : 검색 속도가 빠르고 메모리 할당, 해제 쉬움 단점 : 내부 단편화 발생 free_list를 가리키는 2중 포인터 설정 // free block 들의 정보를 모아둔 리스트 정보 // SUCC가 PRED보다 많이 쓰이므로 데이터를 접근하기 쉽도록 HEADER와 더 가까이 배치 #define NEXT_FREE(bp) (*(void **)(bp)) /* Next free block의 시작주소 */ #define PREV_FREE(bp) (*(void **)(bp + WSIZE)) /* Prev free block의 시작주소 */ static char *free_li..