HTTP 웹 서버

Blog Content

    티스토리 뷰

    HTTP 웹 서버

    TCP/IP 기반의 Application Protocol 중  인터넷 서비스 프로토콜인  HTTP 는  현재까지 가장 범용적으로 사용되고 있다. 


    HTTP는  기본적으로 클라이언트-서버 프로토콜이다. 

    요청은 하나의 개체, 사용자 에이전트 ( 대부분의 경우 브라우저지만, 무엇이든 될 수 있다)  에 의해 전송됩니다. 각각의 개별적인 요청들은 서버로 보내져 처리되어 response라고 불리는 객체를 서버로부터 돌려받습니다. 


    HTTP 는  헤더정보를 통해 많은 유용한 정보를 전달 합니다. 

    아래 예시를 참고


    • HTTP Request  Header 




    Line 1 :  요청 Method 로 HTTP 는 클라이언트가 서버에게 요청하는 방법을 정의 한다   특히 요청 Method는 


    Line 2: host는 요청을 한 서버의 호스트 이름 

    Line 3: User-Agent 는 요청 한 클라이언트 ( 대부분 브라우저 )어플리케이션 이름, 버전, 처리 가능한 기능 등 다양한 정보를 담고 있다.  

                gzip , deflate  과 같은 압축파일을 풀수 있음을 서버에 알려 , 서버는 이를  알고  응답 데이터를 압축해서 전송하여 전송 속도개선에 활용된다.

    Line 9Connction: Keep-Alive : HTTP1.1  이후 제공되는 기능으로 

                일반적으로 HTTP는 connection less 방식으로 연결을 매번 끊고 새로 생성하는 구조입니다. 

                이는 network 비용측면에서 많은 비용을 소비하는 구조입니다.( 최초 연결하기 위한 준비과정을 의미함 ) 그래서 HTTP 1.1부터는 Keep-Alive를 

               사용하면  keep Alive time out내에 client에서 request를 재 요청하면 socket(port)를 새로 여는 것이 아니라 

               이미 열려 있는 socket(port)에 전송하는 구조가 가능하다. 

               참고로 보면 Keep-Alive: timeout=5, max=99 부분에서 max 는 최초 연결된 port에 대해서 100회 request를 받겠다는 의미입니다.

               keep alive time out이 되었을 때 client의 socet이 닫히거나 browser가 더 이상 얻어 올 것이 없으면 자동으로 닫어 버림. 



    HTTP KEEP Alive 설정하기 


    • HTTP Response  Header 





    응답 코드 


    Comments