HTTP

ToastEggsToast·2020년 9월 23일
0

We!

목록 보기
24/33
post-thumbnail

HTTP

HTTP는 Hyper Text Transfer Protocol의 약자로, 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속이다.

✔️ HTTP의 두 가지 특징

1. Request / Response

HTTP는 주고 받을 수 있도록 하는 소통방식에 대한 약속으로 보내는 주체(Request를 하는 쪽)과 받는 주체(Response를 하는 쪽)가 존재한다.

2. Stateless

말 그대로 state가 없다는 이야기이다. 무슨 뜻이냐!!!
HTTP로 통신을 하면 이전에 보냈던 요청이나 요청에 담겨있던 데이터들을 기억하지 못 한다는 뜻이다.
따라서 우리가 HTTP로 통신을 할 경우에는 계속해서 필요한 데이터를 담아 요청을 해야만 응답을 받을 수 있다.

🍖 Request/Response 뜯어보기

=> Request

Request는 크게 Start Line,Headers,Body 세 부분으로 이루어져있다.

StartLine

Start Line 또한 세 가지 부분으로 이루어져 있다.

  • HTTP Method : request가 의도한 action. POST, GET, DELETE 등이 있다.
  • Request Target : request가 요청되는 타겟 url
  • HTTP Version : 사용되는 HTTP의 버젼. 1.1이 주로 쓰이고 그 외 version 2 등도 있다.

Headers

요청의 추가 정보(메타 데이터 등)을 담고 있는 부분으로 key:value 값으로 구성되어있다.

Headers: {
   Host: 요청 목표타겟의 주소
   User-Agent: 요청을 보내는 클라이언트의 정보
   Content-Type: 해당 요청이 보내고 있는 메세지 body의 타입
   Content-Length: body내용의 길이
   Authorization: 회원 인증, 인가 등을 처리하기 위한 토큰이 담기는 위치.
}

Body

해당 요청의 실제 내용으로, 보통 POST 메소드에서 body를 많이 사용한다.

=> Response

Response도 Request와 마찬가지로 Status Line, Headers, Body 세 부분으로 구성되어있다.

Status Line

응답의 상태 줄로, 요청에 대한 처리상태를 클라이언트에게 알려준다.

  • HTTP Version : 요청의 HTTP버전과 동일
  • Status Code : 응답 상태에 대한 코드
  • Status Text : 응답 메세지의 상태를 간략하게 설명하는 메세지
HTTP/1.1 404 NOT FOUND

Headers

요청의 헤더와 동일. 응답의 추가정보(메타데이터)를 담고 있다. 응답에서만 사용되는 헤더의 정보들이 담겨있다.
(User-Agent 대신 Server 헤더가 사용됨)

Body

요청의 Body와 일반적으로 동일하다. 응답의 형태에 따라 Body가 있을수도, 없을수도 있다. 가장 많이 사용되는 Body 타입은 JSON(JavaScript Object Notation).

🔑 Response Status Codes

  • 200 OK
    가장 자주 보게되는 코드로, 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나오는 응답코드
  • 201 Create
    대개 POST 메소드의 요청에 따라 데이터가 잘 생성되었을 경우 볼 수 있다.
  • 400 Bad Request
    해당 요청이 잘못되었을 때 보낸다.
  • 401 Unauthorized*
    유저가 해당 요청을 진행하려면 먼저 로그인을 하거나 회원가입이 필요하다는 의미.
  • 403 Forbidden
    유저가 해당 요청에 대한 권한이 없다는 뜻. 접근 불가능.
  • 404 Not Found
    요청된 URI가 존재하지 않음
  • 500 Internal Server Error
    서버 에러가 났을 때.
profile
개발하는 반숙계란 / 하고싶은 공부를 합니다. 목적은 흥미입니다.

0개의 댓글