ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 란?
    용어 2020. 2. 21. 14:12
    반응형

    HTTP(HyperText Transfer Protocol) 란?

     웹 브라우저는 웹 브라우저 주소 입력란에 지정된 URL에 의지해서 웹 서버로부터 리소스라고 불리는 파일 등의 정보를 얻습니다. 이 때, 서버에 의뢰를 하는 웹 브라우저 등을 클라이언트(Client)라고 합니다. 이렇게 클라이언트에서 서버까지 일련의 흐름을 결정하는 통신규약(프로토콜)입니다.

     

    HTTP 특징 

    • 클라이언트와 서버 간에 통신

     TCP/IP에 있는 다른 많은 프로토콜과 마찬가지로 HTTP도 클라이언트와 서버 간에 통신을 합니다. 텍스트와 이미지 등과 같은 리소스를 필요하다고 요구하는 쪽이 클라이언트가 되고, 이러한 리소스를 제공하는 쪽이 서버가 됩니다.

    • 요청(Request)과 응답(Response)을 교환하여 성립

     HTTP는 클라이언트로부터 요청(Request)이 송신되며, 그 결과가 서버로부터 응답(Response)로 되돌아옵니다. 즉, 반드시 클라이언트 측으로부터 통신이 시작됩니다. 서버 측은 요청을 받지 않고서는 응답을 송신하는 일은 없습니다.

    • 상태를 유지하는 프로토콜

     HTTP는 상태를 계속 유지하지 않는 무상태(Stateless) 프로토콜입니다. HTTP 프로토콜 독자적으로, 요청과 응답을 교환하는 동안에 상태를 관리하지 않습니다. 결국, HTTP 프로토콜 레벨에서는 이전에 보냈던 요청이나 이미 되돌려준 응답에 대해서는 전혀 기억하지 않습니다.

    • 요청(Request) URI로 리소스를 식별

     HTTP는 URI(Uniform Resource Identifiers)를 사용하여 인터넷 상의 리소스를 지정합니다. 이 URI가 있는 덕분에 인터넷 상의 어떤 장소에 있는 리소스도 호출할 수 있습니다.

    • 메서드를 사용해서 지시

     요청 URI로 지정한 리소스에 요청을 보내는 경우에는 메소드라고 불리는 명령이 있습니다. 메소드는 리소스에 어떤한 행동을 하기 원하는지를 지시하기 위해 존재합니다.

    • 서버에 임무를 부여하는 HTTP 메소드

     GET 

     요청 URI로 식별된 리소스를 가져올 수 있도록 요구합니다. 가져올 리소스 내용은 지정된 리소스를 서버가 해석한 결과입니다. 결국 리소스가 텍스트이며 그대로 반환하고 GGI와 같은 프로그램이면 실행해서 출력된 내용을 돌려줍니다.

    POST 

     엔티티를 전송하기 위해서 사용됩니다. GET으로도 엔티티를 전송할 수 있지만, 자주 사용하지 않고 일반적으로 POST를 사용합니다.  

    PUT 

     파일을 전송하기 위해서 사용됩니다. FTP에 의한 파일 업로드와 같이, 요청 중에 포함된 엔티티를 요청 URI로 지정한 곳을 보존하도록 요구합니다.

    HEAD 

     GET과 같은 기능이지만 메시지 바디는 돌려주지 않습니다. URI 유효성과 리소스 갱신 시간을 확인하는 목적 등으로 사용됩니다.

    DELETE 

     파일을 삭제하기 위해 사용됩니다. PUT 메소드와는 반대로 동작하며 요청 URI로 지정된 리소스의 삭제를 요구합니다.

    OPTIONS 

     요청 URI로 지정한 리소스가 제공하고 있는 메소드를 조사하기 위해서 사용됩니다.

    TRACE 

      Web 서버에 접속해서 자신에게 통신을 되돌려 받는 루프백(loop-back)을 발생시킵니다.

    CONNECT 

      프록시에 터널 접속 확립을 요함으로써, TCP 통신을 터널링 시키기 위해서 사용됩니다. 주로 SSL이랑 TLS 등의 프로토콜로 암호화 된 것을 터널링 시키기 위해서 사용되고 있습니다.

    • 지속 연결

     TCP 연결 문제를 해결하기 위해서 지속 연결(Persistent Connections)이라는 방법을 고안하였습니다. 지속 연결의 특징은 어는 한 쪽이 명시적으로 연결을 종료하지 않는 이상 TCP 연결을 계속 유지합니다.

    • 쿠리를 사용한 상태 관리

     HTTP는 무상태(Stateless) 프로토콜이기 때문에, 과거에 교환했었던 요청과 응답의 상태를 관리하지 않습니다. 결국, 과거 상태를 근거로 해서 현재 요청을 처리한다는 것은 불가능합니다.

     쿠키는 요청과 응답에 쿠기 정보를 추가해서 클라이언트의 상태를 파악하기 위한 시스텝입니다. 쿠기는 서버에서 응답으로 보내진 Set-Cookie라는 헤더 필드에 의해 쿠키를 클라이언트에 보존하게 됩니다. 다음 번에 클라이언트가 같은 서버로 요청을 보낼 때, 자동으로 쿠키 값을 넣어허 송신합니다.

    서버는 클라이언트가 보내온 쿠키를 확인해서 어느 클라이언트가 접속했는지 체크하고 서버 상의 기록을 확인해서 이전 상태를 알 수 있습니다.


    출처 : 그림으로 배우는 HTTP & Network Basic

    반응형

    '용어' 카테고리의 다른 글

    TCP/IP 란?  (0) 2020.02.25
    REST 란?  (0) 2020.02.19
    SOAP 이란?  (0) 2020.02.19

    댓글

Designed by Tistory.