HTTP 메소드는 클라이언트가 서버에게 수행하길 원하는 동작을 지정하는 데 사용된다. 주로 웹에서 자원(resource)에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행할 때 사용된다.
GET 메소드는 지정된 리소스를 검색하여 요청에 응답한다. 웹 페이지나 이미지와 같은 자원을 조회할 때 사용된다. 데이터를 조회하는 데 사용되므로, 서버의 데이터나 상태를 변경하지 않는다(idempotent). URL에 쿼리 문자열(query string)을 포함시켜 데이터를 서버로 전송할 수 있다.
POST 메소드는 요청된 자원을 서버에 제출하여 생성하거나 업데이트한다. 폼(form) 데이터나 파일 업로드를 서버로 전송할 때 사용된다. 데이터를 서버로 전송할 때 사용되며, 서버의 상태나 데이터를 변경할 수 있다. 데이터는 HTTP 메시지의 바디(body)에 포함되어 전송된다.
PUT 메소드는 명시된 리소스를 요청 payload로 전송된 데이터로 생성하거나 업데이트한다. 지정된 리소스의 상태를 업데이트하거나, 지정된 URI에 리소스를 생성할 때 사용된다. 서버의 리소스를 지정된 데이터로 대체한다. 리소스가 없으면 새로 생성할 수 있다(idempotent).
DELETE 메소드는 지정된 리소스를 삭제한다. 서버의 특정 리소스를 삭제할 때 사용된다. 서버의 리소스를 삭제하는 데 사용되며, 삭제 성공 여부는 서버의 구현에 따라 다를 수 있다(idempotent).
이 외에도 HTTP/1.1 스펙에는 HEAD, OPTIONS, TRACE, CONNECT, PATCH 등의 다른 메서드도 정의되어 있다. PATCH는 리소스의 부분적인 수정을 위해 사용되며, 나머지 메서드들은 특별한 경우에 사용되는 보조적인 메서드들이다.
REST API (Representational State Transfer API)는 분산 시스템 설계를 위한 아키텍처 스타일 중 하나로, 웹 기술을 사용하여 애플리케이션 컴포넌트 간에 정보를 교환한다. REST는 HTTP 프로토콜의 기본 원칙을 활용하여 구현되며, 각 리소스(데이터 항목)에 고유한 URI를 할당하고, 표준 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행한다.
REST API는 상태를 유지하지 않는(stateless) 통신을 지향하기 때문에, 각 요청은 독립적이며 요청 간에 클라이언트의 상태 정보가 서버에 저장되지 않는다. 이는 서버 설계를 단순화시키고, 확장성을 높이는 데 도움이 된다. REST API는 웹 서비스, 모바일 애플리케이션 백엔드, 클라우드 기반 서비스와 같은 다양한 분야에서 널리 사용된다.
DNS (Domain Name System)는 인터넷 상에서 도메인 이름(예: www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소(예: 192.0.2.1)로 변환하는 분산형 데이터베이스 시스템이다. 사용자가 웹 브라우저에 도메인 이름을 입력하면, DNS 서버는 해당 도메인 이름에 해당하는 IP 주소를 조회하여 사용자의 요청을 올바른 서버로 안내한다. 이 과정은 사용자가 복잡한 IP 주소를 기억하지 않고도 웹 사이트에 쉽게 접근할 수 있게 해준다. DNS 시스템은 루트, TLD(Top-Level Domain), 그리고 권한 있는 네임 서버 등 여러 계층으로 구성되어 있다.
HTTP 상태코드(Status Codes)는 서버가 클라이언트의 요청을 어떻게 처리했는지 나타낸다.
- 1xx (정보적): 요청을 받았으며 프로세스를 계속 진행한다.
- 2xx (성공): 요청이 성공적으로 수행됐다를 알린다. (예: 200 OK)
- 3xx (리다이렉션): 추가 작업이 요청을 완료하기 위해 필요하다.
- 4xx (클라이언트 오류): 클라이언트의 잘못된 요청. (예: 404 Not Found)
- 5xx (서버 오류): 서버가 요청을 수행할 수 없음. (예: 500 Internal Server Error)
'네트워크' 카테고리의 다른 글
UDP, TCP/IP, OSI 7 Layer, Ethernet (0) | 2024.03.23 |
---|---|
CDN(Content Delivery Network) (2) | 2024.03.22 |