Hypertext Transfer Protocal의 줄임말로 웹 상에서 브라우저와 서버가 데이터를 주고 받을 때 사용하는 프로토콜
HTTP의 특징
Request & Response
HTTP 통신은 Client의 요청(Request)과 그에 대한 Server의 응답(Response)으로 이루어져 있다.
TCP / IP 위에서 동작 -> 80번 포트 사용
어떤 종류의 데이터라도 사용 가능
비연결성 -> Request에 대한 Response를 받으면 연결을 끊어버린다.
장점: 연결에 대한 리소스를 줄일 수 있다.
단점: 같은 client에서 오는 요청도 계속해서 연결/해제 해야 한다.
클라이언트를 식별하지 못함 -> 비연결성의 특징을 가지기 때문에 Server는 Client를 식별하지 못한다.
HTTP를 이용하여 Client에서 Server로 Request를 보낼 때 어떠한 목적으로 Request를 하는 것인지 정의를 내릴 수 있다.
GET: 서버가 데이터를 달라는 요청을 할 때 사용
POST: 서버에게 데이터를 전송하는 요청을 할 때 사용
PUT: 서버에서 요청 URI의 데이터를 수정하거나 새로 추가하도록 요청할 때 사용
PATCH: 서버의 데이터를 일부 수정할 때 사용
DELETE: 서버의 요청 URI의 데이터를 삭제하도록 요청할 때 사용
서버가 응답을 전송할 때 같이 전송하는 코드
3자리 숫자로 구성되어 있으며 요청에 대한 서버의 상태를 나타낸다.
앞자리는 1~5의 숫자이며 , 4와 5는 에러를 나타낸다.
100 Continue : 요청이 진행중이고 문제 없다
200 0K : 요청이 성공적으로 완료됨.
201 Created : Create Complete 보통 POST, PUT 요청 뒤에 온다
300 Multiple Choice : 요청에 대해 하나 이상의 응답이 가능함
301 Moved Permanetly : 요청한 리소스의 URI가 변경됨
400 Bad Request : 잘못된 문법
401 Unauthorized : 인증되지 않은 클라이언트 요청
403 Forbidden : 클라이언트가 리소스에 접근할 권리가 없음
404 Not Found : 클라이언트가 요청한 리소스가 서버에서 찾을 수 없음
408 Request Timeout : 요청 중 시간이 초과
500 Internal Server Error : 서버에러를 처리 불가능
502 Bad Gateway : 서버가 게이트웨이로부터 잘못된 응답을 받음
503 Service Temporarily Unavailable : 일시적으로 서버 사용불가능 (점검이나 과부하)
504 Gateway Timeout : 서버가 게이트웨이의 역할을 하고 있으며 다른 서버로부터 응답을 받지 못함