HTTP란 뭘까?
HyperText Transfer Protocol의 약자
- HperText
문서와 문서가 링크로 연결되도록 하는 태그로 구성된 언어
- Transfer
간단하게 물건이나 편지따위를 전송한다는 뜻
- Protocol
컴퓨터 끼리 어떻게 HTML파일(HyperText)을 주고 받을지에 대한 약속
HTTP의 특징
1. Request / Response (요청 / 응답)
1 )Request - HTTP 요청은 사실 프론트엔드(클라이언트) 에서 백엔드(서버)에 일(데이터 처리)을 시작하게 하기 위해 보내는 메세지다.
Start line
: HTTP Method,Request target,HTTP Version를 담고있다.
headers
: 메타 데이터를 담고있는 부분
body
: 해당 요청의 실제 내용
2 )Response -응답은 요청에 대한 처리상태를 클라이언트에게 알려주는 것이다.
Status line
: HTTP Version, Status Code, Status Text를 담고있다.
headers
: Request 와 동일
body
: Request 와 동일
2. Stateless
http통신은 개별통신이기에 모두 독립적이고, 통신의 결과를 보존하지않는다.
매 통신마다 사전에 필요한 모든정보를 담아서 요청을 보낸다.
토큰의 정보를 담아야지만 로그인했다는 증거를 남길 수 있다.
HTTP의 메소드(methods)
1. GET
- 서버로 부터 데이터를 받아오기만 할 때 사용된다.
- 웹페이지를 띄울 때 필요한 데이터들을 get메소드의 요청을 통해 화면에 나타나는 것이다.
- body가 포함된다.
2. POST
- 데이터를 생성 , 수정 할 때 주로 사용되는 메소드
- 데이터를 생성 및 수정 할 때 많이 사용되기 때문에 대부분의 경우 요청에 body가 포함된다.
3. DELETE
- 특정 데이터를 삭제요청을 할 때 사용하는 메소드
- body가 포함되지 않는다.
Status Code
현재 http의 상태를 알려주는 코드 간단하게 설명하면 200대
는 성공적, 400대
는 프론트 오류, 500대
는 백엔드 오류라고 생각하면 되지만 자세히 알아보자
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) 오직 유료회원만 접근할 수 있는 데이터를 요청 했을 때
404: Not Found
500: Internal Server Error
- 서버에서 에러가 났을 때의 Status Code
- API 개발을 하는 백엔드 개발자들이 싫어하는 코드
(프론트는 내 잘못 아니라는 것을 알 수 있는 코드)