HTTP
- 클라이언트와 서버가 통신하는 방법 중 하나.
- 클라이언트가 요청을 보내면 서버가 응답을 반환하는 형태.
- 요청과 응답시 구조화된 데이터를 전송할때 일반적으로 JSON 구조를 사용.
HTTP 요청의 구성 요소
- URL: 요청을 보내는 주소
- Method: 요청의 종류 / 타입.
- Header: 요청의 메타데이터.
- Body: 요청과 관련된 데이터.
- 메타데이터를 정의.
- 메타데이터는 요청에 대한 정보를 정의함.
- 쿠키, 인증 토큰, 요청의 바이트 길이, 요청/응답을 보낸 Host, 요청할때 사용된 클라이언트 타입과 버전 등을 정의.
- Key / Value 형태로 정의되고 둘 모두 String 형태임.
- 라이브러리 / 프레임워크 / env 에 의해 자동 생성되는 값들이 많고 직접 값을 변경하는 경우는 Body 보단 상대적으로 적음.
Body
- 요청에 대한 로직 수행에 직접적으로 필요한 정보를 정의.
- 일반적으로 JSON 구조를 사용함.
Method
- GET: 데이터 조회.
- POST: 데이터 생성.
- PUT: 데이터 업데이트 또는 생성.
- PATCH: 데이터를 부분적 또는 전체를 업데이트.
- DELETE: 데이터 삭제.
HTTP 응답의 구성 요소
- Status Code: 응답의 종류.
- Header: 응답의 메타데이터.
- Body: 응답에 관련된 데이터.
주요 Status Code 정리
- 200 (OK): 정상 응답.
- 201 (Created): 데이터 생성 완료. (
POST
요청시 자주 사용)
- 301 (Moved Permanently): 리소스가 영구적으로 이동됨.
- 400 (Bad Request): 잘못된 요청. (필수 값 부족 등)
- 401 (Unauthorized): 인증 토큰 또는 키가 잘못됨.
- 403 (Forbidden): 접근 불가한 리소스. (401과 달리 인증은 완료된 상태)
- 404 (Not Found): 존재하지 않는 리소스.
- 405 (Method Not Allowed): 허가되지 않은 요청 Method
- 500 (Internal Server Error): 알 수 없는 서버 에러