HTTP는 뭘까?

haaaalin·2022년 2월 4일

'HTTP' 라는 용어

HTTP는 RFC2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜로, Hyper Text Transfer Protocol의 줄임말이다. 이름에는 하이퍼텍스트 전송용 프로토콜로 정의되어 있지만, 실제로는 HTML, XML, JSON, Image, Voice, Video, Javascript 등 컴퓨터에서 다룰 수 있는 것은 모두 전송할 수 있다.

TCP를 기반으로 한 REST의 특징을 모두 구현하고 있는 것이 특징이다.

쉽게 말해서 클라이언트와 서버가 메시지를 주고 받을 때의 방식을 HTTP라 할 수 있다. 클라이언트는 서버에 Request(요청) 을 하고, 서버는 클라이언트에 Response(응답) 을 하는데 이때 HTTP에 따라 응답과 요청을 주고 받는다.

HTTP의 요청

클라이언트는 요청할 때, 위 사진의 포맷에 맞게 Request header를 서버에 보낸다.
첫 번째 줄에 보면, Request Line이 있는데, GET 이 보인다.
HTTP의 요청을 특정하는 Method는 총 8가지가 있는데, GET은 그 중에 하나이다.

이렇게 위와 같이 Method를 앞에 명시함으로써 어떤 요청인지 서버에게 보여준다.

HTTP의 응답

서버는 클라이언트 Request Line 처럼, 응답의 상태를 나타내는 Line이 있다. 아래 나오는 코드는 Statuse code에 들어갈 코드의 종류다.

  • 1xx : 처리중, 처리가 계속 되고 있는 상태. 클라이언트는 요청을 계속 하거나 서버의 지시에 따라서 재요청
  • 2xx : 요청의 성공
  • 3xx : 리다이렉트, 다른 리소스로 리다이렉트, 해당 코드를 받았을 때는 Response의 새로운 주소로 다시 요청
  • 4xx : 클라이언트 에러, 클라이언트 요청에 에러가 있는 상태. 재전송 하여도 에러가 해결되지 않는다.
    (그래서 404에러가 이때 뜨는 것!! 자주 보던 것인데, 의미를 알게 되어서 뭔가 뿌듯하다😎)
  • 5xx : 서버에러, 서버 처리중 에러가 발생한 상태. 재 전송시 에러가 해결 되었을 수도 있다.
profile
한 걸음 한 걸음 쌓아가자😎

0개의 댓글