HTTP

김명주·2023년 5월 25일
0
post-custom-banner

HTTP란?

HTTP란 Hypertext Transfer Protocol의 약자로, 웹에서 데이터를 주고받기 위한 프로토콜이다. 주로 웹 문서를 주고받기 위해 사용되며 모바일 앱, 게임 개발 등 다양한 목적으로 사용되기도 한다.
클라이언트는 요청의 목적에 따라 적절한 HTTP 메소드를 사용한다.

HTTP 동작

클라이언트 즉, 사용자가 브라우저를 통해서 어떠한 서비스를 url을 통하거나 다른 것을 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다.
예를 들면, 우리가 특정 웹 사이트로 접속하면 서버에 GET 요청을 보내게 된다. 우리는 상태 코드를 통해 우리의 요청 결과를 응답 받을 수 있다. 요청을 받은 서버는 그 응답으로 HTML, JS, CSS등을 반환하며 웹 브라우저는 이를 화면에 출력하게 된다.
HTML 문서만이 HTTP 통신을 위한 유일한 정보 문서는 아니다.
Plain text로 부터 JSON 데이터 및 XML과 같은 형태의 정보도 주고 받을 수 있으며, 보통은 클라이언트가 어떤 정보를 HTML 형태로 받고 싶은지, JSON 형태로 받고 싶은지 명시해주는 경우가 많다.

HTTP 특징

  1. HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해 해석이 된다.

  2. TCP/ IP를 이용하는 응용 프로토콜이다.
    (컴퓨터와 컴퓨터간에 데이터를 전송 할 수 있도록 하는 장치로 인터넷이라는 거대한 통신망을 통해 원하는 정보(데이터)를 주고 받는 기능을 이용하는 응용 프로토콜)

  3. HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다.(무상태성) -> 클라이언트는 HTTP로 서버에 연결한 뒤에 응답을 받으면 그 연결을 끊어버린다. 서버 입장에서는 접속 유지에 대한 요구가 적어 불특정 다수를 대상으로 하는 서비스에 적합하다.
    ex) 상품확인 -> 장바구니 -> 결제의 과정이 시스템적으로 상태 정보로 기록되지 않는다.
    (이러한 단점을 해결하기 위해 Cookie와 Session이 등장하였다.)

  4. HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청/응답 방식으로 동작한다.

  5. Keep-alive 기능 지원

    • HTTP 1.1 버전부터 지원하는 기능
    • 하나의 웹 사이트에 방문하면 대개 수십개의 파일을 제공하는데 TCP 통신 과정 중 연결 수행/해제 에서 리소스가 많이 소요된다.
    • keep-alive는 이러한 파일을 하나씩 받기 위하여 매번 연결을 맺고 끊는것을 방지한다.

HTTP Method

  1. GET
  • 데이터를 읽거나(Read) 검색(Retrieve)할 때에 사용되는 메소드
  • 자원의 상태를 변경시키지 않아 safe method라고 불리고, 멱등성을 띈다
  • 멱등성이란 여러번 수행해도 결과가 같음을 의미한다. 즉, 호출로 인하여 데이터가 변형이 되지 않는다는 것을 의미한다.
  1. POST
  • 새로운 리소스를 생성(create)할 때 사용
  • 서버의 상태를 변경시켜 비멱등성을 띈다
  1. PUT
  • PUT는 리소스를 생성 / 업데이트하기 위해 서버로 데이터를 보내는 데 사용
  • 존재하는 자원을 전체적으로 변경할 때 사용
  • 자원이 존재하지 않는 경우, API는 자원을 생성할 수 있으며 이 경우 201코드
  1. PATCH
  • 한 자원의 데이터를 부분적으로 변경할 때 사용
  • PUT과 마찬가지로 자원을 변경하지만, 자원의 데이터를 부분적으로 변경할 때 사용
  1. DELETE
  • 지정된 리소스를 삭제
  • 멱등성 성질을 띈다고 할 수 있다. DELETE 메소드를 요청했을 때 자원을 삭제한 후 반복적으로 요청하게되면 404에러코드를 받게 되므로 멱등성의 성질을 띈다고 할 수 있다.
profile
개발자를 향해 달리는 사람
post-custom-banner

0개의 댓글