HTTP

jinatra·2021년 8월 12일
0

WEB

목록 보기
1/3
post-thumbnail

HTTP


HTTP란?

HyperText Transfer Protocol

HyperText

HTML (Hyper Text Markup Language)
문서와 문서가 링크로 연결되어 있음을 뜻함

Transfer

전송하다 = 물건이나 편지 따위를 보내다
HTML로 만든 웹페이지 문서(파일)을 보낸다

Protocol

컴퓨터끼리 어떻게 HTML 파일을 주고 받을 지에 대한 소통 방식 또는 약속


HTTP의 두가지 특징

1. Request & Response

소통의 핵심은 요청과 응답
인간의 소통방식이 컴퓨터끼리의 소통 방식에도 적용된 것
말이 아닌 메세지의 형식으로 요청하고 응답

사용자가 서버에 Request(요청)를 보내면, 서버는 해당 요청에 대한 Response(응답)한다


2. Stateless

State (상태) + less (없음)

HTTP 개별 통신은 모두 독립이어서, 과거의 HTTP 통신의 결과(상태)를 보존하지 않는다.
즉, 과거의 Request(요청)에 대한 Response(응답)를 기억하지 못한다.

개별 통신이 다 별개라서, 하나의 requestresponse가 할당이 되었으므로 이후 들어오는 새로운 request가 동일한 request라도 다시 새로운 response를 해줘야 한다


Token (토큰)

위의 예시에서, 그럼 나는 리트리버 영상을 볼 때마다 매번 로그인을 해줘야하나?
이때토큰 이라는 개념이 등장한다.

만약 내가 첫번째 로그인에 성공했을 때 서버에서 나에게 토큰이라는, 일종의 인증서와 같은 허가를 발급해준다.

이후 어떤 요청이 갈 때마다 정보에 토큰이 항상 따라다니고, 서버가 나의 Request를 받을 때토큰을 함께 검증하고 Response를 보내는 것이다.

Server → Client에게 토큰을 지급하고, Client는 header에 저장하고 다닌다.

즉, 매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보내는 개념이다.


Request 메세지 구조

요청과 응답 모두 메세지의 형식

요청 메세지의 정해진 구조는 아래와 같다

응답 메세지의 정해진 구조는 아래와 같다.


HTTP Request Methods

Get

데이터를 받아오기만 할 때 사용
웹페이지에 접속해서 필요한 데이터를 불러올 때 사용

  • 이름 그대로 어떤 데이터를 서버로 부터 받아(GET)올 때 주로 사용하는 메소드
  • 데이터를 받아오기만 할 때 사용된다.
  • 가장 간단하고 많이 사용되는 HTTP 메소드 (사실 우리가 웹페이지를 띄울 때 필요한 정보들을 모두 GET메소드로 요청을 보내서 받아온 응답을 화면에 띄우는 것이다)

POST

데이터를 생성/수정할 때 사용
Body에 담는 내용이 핵심!

  • 데이터를 생성 / 수정 할 때 주로 사용되는 메소드
  • 데이터를 생성 및 수정 할 때 많이 사용되기 때문에 대부분의 경우 요청에 body가 포함되서 보내진다

DELETE

서버에 저장된 특정 데이터를 삭제할 때 사용

  • 메소드의 이름에서 유추 가능하듯, 특정 데이터를 서버에서 삭제 요청을 보낼때 쓰는 메소드

Status Code

200: OK

  • 가장 자주 보게되는 Status Code
  • 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드
  • 우리는 모두 200 OK 를 원한다

201: Created

  • 무언가가 잘 생성되었을 때에(Successfully Created) 오는 Status Code
  • 대게 POST 메소드의 요청에 따라 백엔드 서버에 데이터가 잘 생성 또는 수정 되었을 때에 보내는 코드

400: Bad Request

  • 해당 요청이 잘못되었을 때 보내는 Status Code
  • 주로 요청의 Body에 보내는 내용이 잘못되었을 때 사용되는 코드
    ex) 전화번호를 보내야 하는데 숫자가 아닌 문자열의 주소가 대신 Body에 담겼을 경우

401: Unauthorized

  • 유저가 해당 요청을 진행하려면 먼저 로그인을 하거나 회원가입이 필요하다는 의미
    ex) wish list, 좋아요 기능은 회원이 아니면 요청을 보낼 수 없음
  • (요청이 누군지도 모를때)

403: Forbidden

  • 유저가 해당 요청에 대한 권한이 없다는 뜻
  • 접근 불가능한 정보에 접근했을 경우
    ex) 오직 유료회원만 접근할 수 있는 데이터를 요청 했을 때
  • 권한이 맞지 않는 사람이 요청할 때 (VIP가 아닌데 VIP룸 갈라고 하는 느낌)

404: Not Found

  • 요청된 URI 가 존재하지 않는다는 의미
  • 데이터 없을 때

500: Internal Server Error

  • 서버에서 에러가 났을 때의 Status Code
  • API 개발을 하는 백엔드 개발자들이 싫어하는 코드 (프론트는 내 잘못 아니라는 것을 알 수 있는 코드)




Take Away

HTTP의 중요성

아래 세가지는 적어도 기억하고 가자!!

  1. HTTP 는 컴퓨터 끼리의 소통을 위한 통신규약이다.
  2. HTTP 통신은 Request(요청)과 Response(응답)으로 이루어 진다.
  3. HTTP 통신의 매 요청과 응답은 이전 상태를 알지 못 한다. (Stateless)




참고
https://velopert.com/2350

profile
으악

0개의 댓글