CS

    HTTP/2에 대해

    HTTP/2에 대해

    Http2가 필요해진 배경HTTP/1.1에서 브라우저가 파이프라이닝을 잘 지원하지 않는다.HTTP/1.1은 파이프라이닝 중에 먼저 온 요청이 후속요청을 블로킹한다.(HOL Blocking)브라우저는 HOL Blocking을 해결하기 위해 하나의 도메인에 대해 최대 6개까지의 TCP 커넥션을 제공한다. 6개의 요청을 병렬로 처리할 수 있는 것이다.하지만 최근에 6개도 부족하여 하위 도메인에서 처리하도록 해서 추가적인 커넥션을 확보할 수 있도록 하는 방법(domain sharding) 으로 우회해서 사용된다.HTTP2의 특징Binary Framing Layer기존의 text 형식이 아닌 binary 형식으로 전송한다.하나의 메시지가 frame이라는 작은 단위로 쪼개져서 전송된다.Multiplexingbina..

    HTTP/1에 대해

    HTTP/1에 대해

    HTTP/0.9의 등장HTTP 프로토콜은 HTML이라는 문서를 통신하기 위한 프로토콜로 1966년에 도입되었다. 이가 HTTP/0.9 이다.이 버전은 GET 메소드만 지원하고 헤더나 상태 코드도 존재하지 않는 정말 프로토타입의 HTTP 프로토콜이었다.HTTP1의 도입HTTP/1.0은 POST나 HEAD 메서드가 추가된 형태이다.이러한 메서드의 도입으로 응용할 수 있는 부분이 늘어났지만, 여전히 많은 문제를 가지고 있었다.이러한 문제들을 해결하여 나온 HTTP 버전이 1.1이다.Persistent ConnectionsHTTP는 단일한 요청에 대해 단일한 응답을 주는 프로토콜로 설계되었다.하지만 요청이 빈번해져도 하나의 요청에 대해 하나의 응답만 해줄 수 있기 때문에 불필요한 3-way-handshake를 ..

    좀비 프로세스와 고아프로세스

    좀비 프로세스좀비 프로세스는 자식 프로세스가 먼저 종료되는 상황에서 wait을 호출하지 않았을 경우(SIGCHLD에 대한 시그널 핸들러도 등록되어 있지 않은 경우) 발생한다.좀비 프로세스는 이미 메모리를 반환한 상태이고, 시스템에서 프로세스 테이블 내의 레코드를 점유하고 있는 상태이다.wait좀비 프로세스의 메모리는 이미 반환되어 있어서 크게 문제되지 않지만 PID는 계속 점유하고 있는다. 이때 좀비 프로세스 관리가 되지 않을 경우 시스템에서 할당 가능한 모든 PID를 사용해버려서 더 이상 프로세스를 만들 수 없는 상태가 될 수 있기 때문에 wait을 통해 종료된 자식 프로세스의 PID를 회수한다.고아 프로세스부모 프로세스가 먼저 종료되었을 때 자식 프로세스는 고아 프로세스가 된다.고아 프로세스는 자동으..