HTTP?
HT : Hyper Text
문서와 문서가 링크로 연결되어 있음
T : Transfer
HTML로 만든 웹페이지 문서를 전송
P : Protocol
데이터 전송에 필요한 통신 규약
- W3 상에서 주로 HTML 문서를 주고받는 데에 쓰이는 통신규약으로 클라이언트와 서버 사이에 이루어지는 요청(Request) / 응답(Response) 프로토콜.
- HTTP는 기본적으로 1요청 1응답을 원칙으로 한다.
HTTP의 두가지 특징
Request / Response
- 소통의 핵심은 요청과 응답
- 인간의 소통방식이 컴퓨터끼리의 소통에도 적용된 것
- 메세지의 형식으로 요청/응답
Stateless
- HTTP 개별 통신은 모두 독립적 -> 과거의 HTTP 통신 결과를 보존하지 않음
- State(상태) + less(없음) : 단어 뜻 그대로 상태를 기억하지 않음
- 매 통신마다 사전에 필요한 모든 정보를 담아 요청을 보내야 함(주로 토큰 이용)
인간의 소통방식은 과거의 요청을 기억하는 Stateful 방식이다.
Request 메세지 구조
Start Line
- 요청의 첫줄(like 제목)
- HTTP method : 요청이 의도한 액션을 정의
- Request target : 요청이 전송되는 목표 url
- HTML version
POST / login HTTP 1.1
- 요청의 메타데이터를 담고 있는 부분
- { key : value }의 형태
Headers : {
Host : www.example.co.kr
User-Agent : chrome
Content-Type : application/json
Content-Length : 50
}
Body
Body : {
"username" : "example"
"password" : "example123"
}
Resonse 메세지 구조
Status Line
- 응답의 첫번째 줄
- 상태를 나타냄
- HTTP version
- Status Code : 응답의 상태를 간략히 설명하는 텍스트
HTTP/1.1 404 Not Found
HTTP/1.1 200 SUCCESS
- 응답의 메타데이터를 담고 있는 부분
- { key : value } 의 형태
Headers : {
Host : www.example.co.kr
User-Agent : chrome
Content-Type : application/json
Content-Length : 50
}
Body
Body : {
"message" : "success"
"token" : "dkdnakfdlskdlrjsxhzms"
}
HTTP Request method
GET
- 데이터를 받아오기만 할 때 사용
- 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용
POST
- 데이터를 생성 / 수정 할 때 사용
- Body에 담는 내용이 핵심
DELETE
Status Code
Success
200 : OK
- 문제없이 요청에 대한 처리가 백엔드 서버에서 이루어지고 나서 오는 응답코드
201 : Created
- 요청이 성공적으로 처리되어 자원이 생성되었음을 나타내는 응답코드
204 : No Content
- 요청이 성공했으나 클라이언트가 현재 페이지에서 벗어나지 않아도 된다는 것을 나타내는 응답코드
- 일반적으로 PUT 요청에 대한 응답결과
Client Error
400 : Bad Request
401 : Unauthorized
- 해당 요청을 진행하려면 먼저 로그인 또는 회원가입이 필요하다는 의미를 나타냄
403 : Forbidden
- 유저가 해당 요청에 대한 권한이 없다는 의미를 나타냄
- 접근 불가능한 정보에 접근했을 경우를 의미
404 : Not found
Server Error
500 : Internal Server Error
- 요청 처리 과정에서 서버가 예상하지 못한 상황에 놓였다는 것을 나타내는 응답코드
- 서버에러를 통칭(Catch all)하는 구체적이지 않은 응답
참고 : 위키피디아 HTTP, 위키피디아 HTTP 상태코드