본문 바로가기

개인공부121

1장 - 웹과 네트워크의 기본에 대해 알아보자 1.1 웹은 HTTP로 나타낸다 웹 브라우저 등의 클라이언트(Client)는 주소 입력란에 지정된 URL을 입력하여 웹 서버로부터 리소스를 얻음 이 때 일련의 흐름을 결정하는 것이 HTTP(HyperText Transfer Protocol) 1.2 HTTP는 이렇게 태어났고 성장했다 1989년 CERN(유럽 입자 물리학 연구소)에서 여러 문서를 상호간에 관련짓는 하이퍼텍스트(HyperText)에 의해 참조할 수 있는 WWW(World Wide Web)의 기본 개념이 등장 이러한 WWW를 구성하는 기술로서 문서 기술 언어인 HTML(HyperText Markup Language), 문서 전송 프로토콜 HTTP, 문서 주소 지정 방법인 URL(Uniform Resource Locator)이 제안됨 1990년.. 2023. 2. 27.
Chapter 24 - HTTP 서버 제작하기 24-1 : HTTP(Hypertext Transfer Protocol)의 개요 웹(Web) 서버 : HTTP 프로토콜을 기반으로 웹 페이지에 해당하는 파일을 클라이언트에게 전송하는 역할의 서버 HTTP : Hypertext(이동이 가능한 텍스트) Transfer Protocol - Hypertext의 전송을 목적으로 설계된 어플리케이션 레벨 프로토콜, TCP/IP를 기반으로 구현됨 Stateless 프로토콜 : 클라이언트의 요청에 응답 후 바로 연결 종료, 서버가 클라이언트의 상태정보를 유지하지 않음 이를 보완하고자 쿠키(Cookies)와 세션(Session)이라는 기술이 사용됨 클라이언트와 웹 서버 사이의 요청방식은 표준화되어있음 요청 라인 : 요청방식(목적)에 대한 정보, GET(주로 데이터 요청).. 2023. 2. 24.
Chapter 23 - IOCP(Input Output Completion Port) 23-1 : Overlapped IO를 기반으로 IOCP 이해하기 리눅스의 epoll과 윈도우의 IOCP 사이의 절대적 비교우위는 존재하지 않음 대신 하드웨어의 성능 / 할당된 대역폭이 충분한 상황에서 응답시간 / 동시접속자 수에 문제가 발생할 경우 아래 사항들을 먼저 고려 비효율적인 IO의 구성 또는 비효율적인 CPU의 활용 데이터베이스의 설계내용과 쿼리(Query)의 구성 윈도우에서는 ioctlsocket() 함수를 통해 논블로킹 모드로 소켓의 속성을 변경할 수 있음 #include int WSAAPI ioctlsocket(SOCEKT s, long cmd, u_long *argp); // 성공시 0, 실패시 SOCKET_ERROR 반환 cmd : 소켓의 IO방식을 지정 cmd를 입출력 모드를 뜻하는.. 2023. 2. 24.
Chapter 22 - Overlapped IO 모델 22-1 : Overlapped IO 모델의 이해 IO의 중첩 : 하나의 쓰레드 내에서 동시에 둘 이상의 영역으로 데이터를 송수신함으로써 입출력이 중첩되는 상황 입출력 함수가 호출 즉시 반환해야함 - 비동기 IO가 필요 따라서 입출력 함수는 논블로킹 모드로 동작해야함 Overlapped IO에서는 입출력 자체보다 입출력이 완료된 상황의 확인이 중요 Overlapped IO에 적합한 소켓을 생성하는데는 WSASocket() 함수를 사용 #include SOCKET WSASocket(int af, int type, int protocol, LPWSAPROTOCOL_INFO lpProtocolInfo, GROUP g, DWORD dwFlags); // 성공시 소켓 핸들, 실패시 INVALID_SOCKET 반환.. 2023. 2. 24.