HTTP: 컴퓨터의 소통 방식

GEUNNN Lee·2021년 2월 26일
0

HTTP

HTTP는 HyperText Transfer Protocol의 약자이다.

HyperText는 링크로 연결된 태그로 구성된 언어
Transfer: 전송
Protocol: 협약, 규약

위 약자를 조합하면 링크로 연결된 태그로 구성된 언어인 하이퍼텍스트를 전송할 때 사용하는 규칙이다. 좀 더 매끄럽게 이야기하면 컴퓨터가 HTML 파일을 주고받을 때 사용하는 규칙이다.

HTTP 특징

  • Request / Response
    - 사람의 소통 구조와 같게 요청과 응답이 있다. 여러 컴퓨터와 소통을 해야하기 때문에 쌍방향으로 움직인다. 사람이 만든 규칙이기 때문에 아무래도 사람의 의사소통 방식을 따르고 있다. 우리가 무언가를 다른 사람에게 부탁할 때 요청을 하고 상대방의 응답을 기다리는데 이게 그대로 HTTP에 적용되었다. 예를 들어
  • Stateless
    - 문자 그대로만 보면 state(상태)와 less(없음)이 합쳐진 단어다. 처음 단어만 보면 와닿지 않을 수 있다. 상태 없음이란 HTTP에는 그간의 상태가 없다는 뜻이다. 좀 더 풀어 설명하면 HTTP는 웹페이지를 처음 접속 했을 때부터 지금까지의 과정을 알지 못한다. (앞에 어떤 요청을 했는지 기록해두지 않는다.) 이 때문에 통신할 때마다 필요한 모든 정보를 요청에 담아 보내야한다.
    예를 들어 커뮤니티 사이트에서 댓글을 작성하는 요청을 보낸다고 가정해보자. 만약 HTTP가 이전 상태를 기억한다면 댓글을 작성하는 요청하면 되지만 그렇지 않기 때문에 로그인 정보도 다시 보내야한다. 같은 과정을 계속 반복하게 되며 이는 매우 비효율적이다. 그래서 이를 해결하기 위해 프리패스를 주는 것을 고안해냈는데 이는 토큰, 쿠키 등에 해당한다.

HTTP 메세지 구조

Request

첫줄에는 메소드, 경로, 프로토콜의 버전이 들어간다.
헤더에는 요청 자체에 대한 정보와 바디 타입에 대한 정보가 있다.
바디 부분에는 페이지 자체에 대한 정보이다.

Method는 정보 요청 방식으로 GET/POST/DELETE 등의 통신 메소드가 있다.

  • GET은 데이터를 받아올 때 사용
  • POST는 데이터를 생성, 수정 요청할 때 사용
  • DELTE는 데이터를 삭제를 요청할 때

request front입장에서 백엔드한테 정보를 get 하고 싶은것

/login > request target 목표 대상

post: body 내용이 핵심

HTTP 1.1 (버전)

Response

응답 메세지 구조도 요청 메세지의 구조와 비슷하다.
응답 메세지 첫줄에는 프로토콜 버전, 상태 코드, 상태 메세지가 들어간다.
그 아래는 헤더가 들어가며 헤더 아래는 마찬가지로 바디이다.

요청 메세지와 다른 부분은 상태코드와 상태 메세지이다. 요청에 대한 답이며 코드는 아래와 같다.

  • 200: OK
    - 통신이 잘 됐을 때 보는 코드
    • 요청이 백엔드 서버에서 이루어지고 오는 코드
  • 201: Created
    - 무언가 생성이 되었을 때 받는 코드
    - 일반적으로 POST 메소드를 보내고 내용을 제대로 포스팅 하면 나오는 코드
  • 400: Bad Request
    - 요청이 잘못되었을 때 받는 코드
    - 주로 요청의 body가 잘못 되었을 경우다.
  • 401: Unauthorized
    - 유저가 요청을 하기 위해서는 로그인 및 회원가입을 해야한다는 의미
  • 403: Forbidden
    - 유저가 권한이 없다는 의미
    - 접근이 불가능한 부분에 요청을 보냈을 때
  • 404: Not Found
    - 페이지가 존재하지 않음
  • 500: Internal Server Error
    - 서버단에서 에러가 났을 때 볼 수 있는 코드
profile
Frontend Developer 👩🏻‍💻👩‍💻

0개의 댓글