1. HTTP
- HyperText Transfer Protocol 의 약자
HyperText
: 참조를 통해 한 문서에서 다른 문서로 접근할 수 있는 텍스트
Transfer
: 전송하다라는 사전적 의미를 가지며 보내는 주체와 받는 주체가 있다는 것이 가장 큰 특징이다.
Protocol
: 협약, 통신규약으로 컴퓨터끼리 어떻게 HTML 파일을 주고 받을지에 대한 약속이다.
2. HTTP 의 특징
🤜 2-1. Request / Response (요청,응답)
- 보내는 주체는 받는 주체에 요청을 보낸다.
- 받는 주체는 보내는 주체의 요청에 대한 응답을 보낸다.
🤜 2-2. Stateless
- state(상태) + less(없음)
- 각각의 HTTP 통신은 독립적 이기 때문에 이전 통신에 대한 내용은 알 수 없다.
- 다시말해 매 통신마다 필요한 모든 정보를 포함해 요청해야한다.
- 로그인 토큰, 쿠키 / 세션 스토리지 / 로컬 스토리지 같은 기술이 연속된 데이터 처리가 필요한 경우를 위해 만들어졌다.
3. Request / Response
🤜 3-1. Request 메시지 구조
- 클라이언트에서 서버에 데이터 처리를 시작하기 위해 보내는 메시지
Start Line
, Headers
, Body
3가지로 구분
Start Line
: 다음 3가지로 구성
1) HTTP Method 👉 GET / POST / DELETE (요청이 의도한 액션 정의)
2) Request target 👉 Request 가 전송되는 목표 URL
3) HTTP Version 👉 HTTP 버전
Headers
: 해당 요청에 대한 추가정보(메타정보)를 담고 있다.
Body
: 해당 요청의 실제 내용으로 POST 메소드를 사용한다.
🤜 3-2. Response 메시지 구조
Status Line
, Headers
, Body
3가지로 구분
Status Line
: 응답의 상태 줄로 요청에 대한 처리상태를 알려주며 시작한다.
1) HTTP Version 👉 요청의 HTTP 버전과 동일
2) Status Code 👉 응답 메세지의 상태 코드
3) Status Text 👉 응답 메세지의 상태를 간략하게 설명하는 텍스트
Headers
: 응답에 대한 추가정보를 담고 있다.
Body
: 응답 내용을 담고 있으며 JSON 타입이 가장 많이 사용된다.
4. HTTP Request Method
🤜 4-1. GET
- 어떤 데이터를 서버로 부터 받아올때 사용하는 메소드
- 데이터를 받아오기만 할 때 사용된다.
🤜 4-2. POST
- 데이터를 생성, 수정할 때 사용되는 메소드
- 대부분 요청에 body가 포함되어 보내진다.
🤜 4-3. DELETE
- 특정 데이터를 서버에서 삭제 요청을 보낼 때 사용되는 메소드
5. Response Status Codes
- 200 : OK
👉 문제 없이 요청에 대한 처리가 이뤄졌을 때 보내지는 코드
- 201 : Created
👉 대게 POST 요청에 따라 서버에 데이터가 생성 또는 수정됐을 때 보내지는 코드
- 400 : Bad Request
👉 해당 요청이 잘못 되었을 때 보내지는 코드
👉 요청의 Body 내용이 잘 돼있을 때 사용되는 코드
- 401 : Unauthorized
👉 요청을 진행하려면 로그인이나 회원가입이 필요하다는 코드
- 403 : Forbidden
👉 유저가 해당 요청에 대한 권한이 없다는 뜻
👉 접근 불가한 정보에 접근했을 경우
- 404 : Not Found
👉 요청된 URL 이 존재하지 않는 경우
- 500 : Internal Server Error
👉 서버에서 에러가 났을 때 보내지는 코드