위코드 11일차

김상연·2021년 2월 25일
0

wecode

목록 보기
11/42

08:00 ~ 09:00 헬스장
10:00 위코드 도착

HTTP

HTTP란 HyperText Transfer Protocol의 약자이다

HTTP의 두가지 특징

1. Request / Response

HTTP 통신의 핵심은 요청과 응답이다.

간단히 생각하면 내가 페이스북의 동영상을 시청할 때 그 링크를 타고 들어가는 순간 내 랩탑은 페이스북의 서버에게 '영상을 주세요'라고 요청, 페이스북의 서버는 내 요청을 응답하는 것이다.

2. Statless

각각의 HTTP 통신은 독립적이기 때문에 과거의 통신 내용을 전혀 알지 못함. 그래서 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야함.

Request 메시지 구조

HTTP 요청은 사실 프론트엔드에서 백엔드에 일을 시작하게 하기 위해 보내는 메시지. 크게 세 부분으로 구 성

  • Start Line : 요청의 첫번째 줄에 해당. 시작 줄도 세 부분으로 구성
  1. HTTP Method : 해당 요청이 의도한 액션을 정의하는 부분. 주로 GET, POST, DELETE가 많이 쓰임
  2. Request target : 해당 request가 전송되는 목표 url
  3. HTTP Version : 사용되는 HTTP 버전. 주로 1.1 버전이 많이 쓰임.

GET /login HTTP/1.1 해석 : GET 메소드로 login 이라는 요청 타켓에 HTTP 1.1 버전으로 요청을 보내겠다!

  • Headers : 해당 요청에 대한 추가 정보(메타 데이터)를 담고 있는 부분
    Key: Value 값을 되어 있음.

자주 사용되는 Headers의 정보는 아래와 같다.
Headers: {
Host : 요청을 보내는 목표, 요청을 보내는 웹사이트의 주소 (ex. www.google.com)
User-Agent : 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, safari)
Content-Type : 해당 요청이 보내는 메시지 body의 타입 (ex. application/json)
Content-Length : body 내용의 길이
Authorization : 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authorization에 담는다.
}

  • Body : 해당 요청의 실제 내용. 주로 Body를 사용하는 메소드는 POST다.

ex) 로그인 시에 서버에 보낼 요청의 내용
Body : {
"user_email": "tkddus614@gmail.com"
"user_password": "password!"
}

Response 메시지 구조

응답도 요청과 마찬가지로 메시지이며 크게 세 부분으로 구성

  • Status Line : 응답의 상태 줄. 요청에 대한 처리상태를 클라이언트에게 알려주면서 내용을 시작.
  1. HTTP Version : 요청의 HTT버전과 동일
  2. Status Code : 응답 메시지의 상태 코드
  3. Status Text : 응답 메시지의 상태를 간략하게 설명해주는 텍스트
  • Headers : 요청의 헤더와 동일. 다만 응답에서만 사용되는 헤더의 정보들이 있다.

  • Body : 요청의 바디와 동일. 가장 많이 사용되는 Body의 데이터 타입은 JSON이다.
    ex) 로그인 요청에 성공했을 시
    Body: {
    "message": "SUCCESS"
    "token": "kjakjgfklja@jkhasdkjfla" (암호화된 유저의 정보)
    }

Response Status Codes

실제 프로젝트를 진행할 때 가장 많이 보게 될 상태 코드들.

200: OK

  • 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드

201: Created

  • 무언가가 잘 생성되었을 때에 오는 코드

400: Bad Request

  • 해당 요청이 잘못되었을 때 보내는 코드

401: Unauthorized

  • 유저가 해당 요청을 진행하려면 먼저 로그인을 하거나 회원가입이 필요하다는 의미

403: Forbidden

  • 유저가 해당 요청에 대한 권한이 없다는 뜻

404: Not Found

  • 요청된 URL이 존재하지 않는다는 의미

500 Internal Server Error

  • 서버에서 에러가 났을 때의 코드

블로깅을 하면서 한 번 더 정리해보았지만 아직은 실제로 쓰지 않아서 감이 잘 잡히지 않지만 어느 정도의 개념은 잡아둔 상태이다. 나중에 프로젝트를 진행하면서 한 번 더 정리해보겠다.

0개의 댓글