728x90
Http(HyperText Transfer Protocol)
- 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나
- Plain text, JSON, XML 등 다양한 형태의 정보도 전송하는 애플리케이션 레이어 프로토콜이다.
- 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약
통신 규약 => 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속
HTTP 동작 방식
클라이언트
서버에게 요청을 보내는 리소스 사용자 ex) 웹 브라우저, 모바일 애플리케이션, IoT 등
서버
클라이언트에게 요청에 대한 응답을 제공하는 리소스 관리자
- 클라이언트가 HTTP reuquest를 서버에 보내면 서버는 HTTP response를 보내는 구조
- 클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어진다.
HTTP 구조
HTTP Method (호출/요청 방식)
- 해당 request가 의도한 action을 정의하는 부분,
- HTTP Methods 에는 GET, POST, PUT, DELETE, OPTIONS 등등이 있다.
- 주로 GET과 POST가 쓰임
Header (추가 데이터. 메타 데이터)
- 브라우저가 어떤 페이지를 원하는지
- 요청 받은 페이지를 찾았는지
- 요청 받은 데이터를 성공적으로 찾았는지
- 어떤 형식으로 데이터를 보낼지
- GET naver.com HTTP/1.1
- 이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받습니다. 위에서 설명 된 메서드도 사실은 헤더에 포함되어 서버로 보내집니다.
Body
- 실제 메세지/내용 (payload)
- Body가 없는 request도 많다
GET request들은 대부분 body가 없는 경우가 많음.
- Payload (데이터. 실제 데이터)
- 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있습니다.
- 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있습니다. 그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속입니다.
HTTP 요청 메서드
GET
- 특정 리소스를 받기 위한 요청이다. 따라서, 리소스의 생성, 수정 및 삭제 등에 사용해서는 안된다.
POST
- 리소스를 생성하거나 컨트롤러를 실행하는 데 사용한다.
PUT
- 변경 가능한 리소스를 업데이트하는 데 사용되며 항상 리소스 식별 정보를 포함해야 한다.
PATCH
- 변경 가능한 리소스의 부분 업데이트에 사용되며 항상 리소스 식별 정보를 포함해야 한다.
PUT을 사용해 전체 객체를 업데이트하는 것이 관례여서 거의 사용되지 않는다.
DELETE
- 특정 리소스를 제거하는 데 사용한다.
일반적으로 Request body가 아닌 URI 경로에 제거하려는 리소스의 ID를 전달한다.
HEAD
- 클라이언트가 본문 없이 리소스에 대한 헹더만 검색하는 경우 사용한다.
일반적으로 클라이언트가 서버에 리소스가 있는 지 확인하거나 메타 데이터를 읽으려는 때만 GET 대신 사용한다.
OPTIONS
- 클라이언트가 서버의 리소스에 대해 수행 가능한 동작을 알아보기 위해 사용한다.
일반적으로 서버는 이 리소스에 대해 사용할 수 있는 HTTP 요청 메서드를 포함하는 Allow 헤더를 반환한다.
'소소한 지식 사전!' 카테고리의 다른 글
[소지사] ORM이란 (0) | 2023.06.27 |
---|---|
[소지사] Jackson (0) | 2023.06.27 |
[소지사] MVC 디자인 패턴 (0) | 2023.06.25 |
[소지사] Http 상태코드(Status Code) (0) | 2023.06.25 |
[소지사]서버-클라이언트 통신 이해하기 (0) | 2023.05.18 |