통신규약 HTTP
HTTP란
정의
HyperText Tranfer Protocol의 약자로 웹에서 데이터를 주고 받기 위한 프로토콜이다. 클라이언트가 요청을 보내면 서버가 응답을 하는 방식.
특징
- 무상태성 - 어떠한 상태도 유지하지 않는다. 모든 요청은 독립적이라 이전의 요청을 기억하지 않는다
- 확장성 - 다양한 '확장 헤더'를 추가하여 기능을 확장할 수 있다
- 유연성 - 다양한 데이터 형식을 전송할 수 있다 ex) text, image, video etc.
요청(request) 메세지
클라이언트가 데이터를 요청할때 서버에 보내는 메세지
- 요청 라인: 메서드(GET, POST, 등), URL, HTTP 버전
- 헤더: 요청의 추가 정보(메타데이터)를 담고 있어요. 브라우저 정보, 인증 정보 등
- 본문: 선택적, 주로 POST 메서드에서 사용
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
응답(response) 메세지
서버가 요청에 응답할때 클라이언트에게 보내는 메세지
- 요청 라인: 메서드(GET, POST, 등), URL, HTTP 버전
- 헤더: 요청의 추가 정보(메타데이터)를 담고 있어요. 브라우저 정보, 인증 정보 등
- 본문: 선택적, 주로 POST 메서드에서 사용
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1354
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
HTTP 상태 코드
요청을 처리한 결과를 나타낼때 세자리 숫자를 사용하여 상태를 나타냅니다.

HTTP 메서드 및 Rest API
클라이언트의 요청이 무엇인지 알려줄 때 HTTP 메서드를 사용하여 CRUD 작업을 수행해줄 수 있다.

- GET
서버로부터 데이터를 요청할 때
사용한다. 요청 데이터가 URL에 포함되어 전송되며, 주로 데이터를 조회할 때 사용.
- REST API에서의 사용: 특정 리소스를 조회할 때
- POST
- 정의: 서버에
데이터를 제출할 때
사용.
- 특징: 요청 데이터가 요청 본문에 포함되어 전송되며, 주로 데이터를 생성하거나 제출할 때 사용.
- REST API에서의 사용: 새로운 리소스를 생성할 때 사용.
- PUT, PATCH
- 정의: 서버의
데이터를 업데이트할 때
사용.
- 특징: 요청 데이터가 요청 본문에 포함되어 전송되며, 주로 기존 데이터를 수정할 때 사용.
- REST API에서의 사용: 기존 리소스를 수정할 때 사용.
- DELETE
- 정의: 서버의
데이터를 삭제할 때
사용.
- 특징: 주로 특정 데이터를 삭제할 때 사용.
- REST API에서의 사용: 특정 리소스를 삭제할 때 사용.
+) API 명세서 작성 가이드