HTTP Transfer

진성·2022년 7월 8일
0
post-thumbnail

HTTP

HTTP란 Hyper Text Transfer Protocol의 약자로 HTML과 같은 하이퍼 텍스트 문서를 전송하기 위한 통신하는 길 이라고 생각하면 된다.
이는 웹 브라우저와 웹 서버간의 커뮤니케이션을 위해 디자인 되었다.
이름에 하이퍼 텍스트가 들어갔지만 텍스트뿐만 아니라 미디어 등의 데이터도 전송이 가능하다.


HTTP의 특징

  • Request 와 Response
    HTTP 통신은 브라우저 또는 클라이언트의 요청(Request)과 그에 대한 서버 또는 클라이언트에 응답(Response)으로 이루어져 있다.

  • TCP/IP 통신 위에서 동작

    • TCP/IP란?
      • TCP/IP는 테이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약이다.
      • TCP/IP는 Transmission Control Protocol/Internet Protocol의 약자로 두가지 프로토콜로 이루어져 있다.
      • 인터넷으로 디바이스를 연결하는 네트워크 프로토콜의 집합이며 개별적인 네트워크 프로토롤로 사용될 수도 있다.
      • TCP/IP는 인터넷의 기본 통신 언어이다.
      • 보다 자세한 내용과 정리는 TCP / IP란 무엇인가? 를 참고 해보면 된다.

    TCP/IP 통신 위에서 동작하면 80번 포트를 사용한다.

  • 전송가능한 데이터 종류가 다양하다.
    텍스트, 이미지, 오디오 등의 미디어 데이터도 전송 가능하다.

  • 비연결성
    비연결성은 한 가지 요청에 대한 응답을 받으면 그 연결을 끊어버리는 것을 의미한다.
    이는 연결에 대한 리소스를 줄일 수 있는 장점이 있지만, 같은 클라이언트에서 오는 요청도 연결/해제 해야 한다는 단점이 있다.

  • Stateless
    이는 비연결성과 같은 특징을 가지고 있기 때문에 서버는 클라이어트를 식별하지 못한다.
    그래서 같은 클라이언트에서 요청을 계속 보내더라도 각각 독립적으로 처리된다.


HTTP Method

HTTP를 이용하여 클라이언트에서 서버로 요청을 보낼때 어떠한 목적으로 요청을 보내는지 서버에서 알 수 있게 정의를 내릴 수 있다.

  • 주요 메서드
    • GET : 데이터를 달라는 요청(열람)할 때 사용
    • HEAD : GET과 같지만 서버가 응답할 때 Body 없이 Header만 리턴
    • POST : 서버에게 데이터를 전송하는 요청할때 사용
    • PUT : 서버에서 요청 URI의 에티어를 수정하거나 새로 추가 하도록 요청 할 떄 사용
    • PATCH : 서버의 데이터를 일부 수정할 때 사용
    • DELETE : 서버의 요청 URI의 데이터를 삭제하도록 요청 할 때 사용

HTTP Status Code

HTTP Status Code는 상태 코드라고 불리며 서버가 응답을 전송할 때 같이 전송하는 코드이다.
클라이언트와 서버는 이 상태 코드를 이용해서 데이터 전송의 상태를 파악할 수 있다.
이는 3자리 숫자로 이루어져 있으며, 요청에 대한 상태를 나타낸다.
앞자리는 1~5의 숫자 중 하나이다.

  • 1XX - 정보 응답
    • 100 Continue : 현재 요청이 진행중이며 문제가 없다는 것을 의미
  • 2XX - 성공 응답
    • 200 OK : 요청이 성공적으로 완료되었음을 의미
  • 3XX - 리다이렉션 메시지
    • Multiple Chouce : 요청에 대해 하나 이상의 응답이 가능함을 의미
  • 4XX - 클라이언트에 에러 응답
    • 400 Bad Request : 잘못된 문법으로 인해 서버가 요청을 이해하지 못했음을 의미
  • 5XX - 서버 에러 응답
    • 500 Internal Server Error : 서버에 문제가 있지만 서버가 해당 문제를 처리할 줄 모름을 의미

이 외의도 응답 코드는 꽤 많기 때문에 이전에 포스트 했던 블로그를 참조
👉 HTTP status code


출처 : HTTP(Hypertext Transfer Protocol)란?, [HTTP] Http Transfer, Mdn[HTTP]

profile
풀스택 진행중...

0개의 댓글