1. HTTP 메소드
HTTP 메소드인 PUT, POST, PATCH, GET, DELETE는 각각 다른 목적으로 사용되며, 그에 따라 body를 사용하는 방식이 다릅니다.
1. POST, PUT, PATCH: Body 사용
이 세 가지 메소드는 클라이언트가 서버로 데이터를 전송할 때 주로 사용되며, 그 데이터를
body
에 포함시킵니다.- POST: 리소스를 생성하거나 서버에 데이터를 전송할 때 사용됩니다. 예를 들어, 새로운 사용자 계정을 만들 때, 사용자 정보는
body
에 포함됩니다.
- PUT: 지정된 리소스를 완전히 대체하거나 새로 만들 때 사용됩니다. 리소스를 업데이트할 때 모든 데이터를
body
에 포함시켜 보내야 합니다.
- PATCH: 리소스의 일부를 업데이트할 때 사용됩니다. 전체 리소스를 보내지 않고, 변경된 부분만
body
에 포함시켜 전송합니다.
2. GET, DELETE: Body 사용 불가
이 두 가지 메소드는 리소스를 요청하거나 삭제할 때 사용되며,
body
를 사용하지 않는 것이 표준입니다.- GET: 서버에서 데이터를 조회할 때 사용됩니다. 예를 들어, 특정 사용자의 정보를 조회할 때, URL에 쿼리 파라미터를 포함할 수 있지만,
body
에는 데이터를 포함하지 않습니다. GET 요청은 주로 리소스를 조회하는 데 사용되므로, URL에 필요한 모든 정보를 포함시켜야 합니다.
- DELETE: 서버에서 리소스를 삭제할 때 사용됩니다. 삭제할 리소스를 URL로 지정하며,
body
에 데이터를 포함하지 않습니다. 일반적으로 삭제할 리소스를 명확하게 식별하는 것이 중요하기 때문에 URL로 해당 리소스를 지정합니다.
요약
- POST, PUT, PATCH 메소드는 클라이언트가 서버로 데이터를 전송하는 데 사용되며, 데이터는 주로
body
에 포함됩니다.
- GET, DELETE 메소드는 서버에서 리소스를 조회하거나 삭제할 때 사용되며, 이 메소드들은
body
를 사용하지 않는 것이 일반적입니다.
HTTP 표준에서는 GET과 DELETE 요청에서
body
를 사용하는 것을 권장하지 않으며, 일부 서버는 이러한 요청에 대해 body
가 포함된 경우 이를 무시하거나 오류를 반환할 수 있습니다. 이는 RESTful API 설계 원칙을 따르는 데 중요합니다.2. RFC
RFC란?
RFC(Request for Comments)는 인터넷과 관련된 프로토콜, 시스템, 절차 등에 대한 공식적인 기술 문서 시리즈입니다. 이 문서들은 인터넷 엔지니어링 태스크 포스(IETF)와 같은 조직에 의해 작성되고, 인터넷 커뮤니티 내에서 표준화의 과정을 거치게 됩니다.
RFC 문서들은 인터넷에서 널리 사용되는 기술 표준을 정의하거나 기존 기술을 개선하는데 사용됩니다. 각 RFC는 고유한 번호를 부여받으며, 한번 출판되면 그 내용은 변경되지 않습니다. 새로운 버전이 필요할 경우, 새로운 번호의 RFC로 출판됩니다.
RFC 7231 설명
RFC 7231은 HTTP/1.1 프로토콜에 대한 사양을 정의하는 문서 중 하나입니다. 이 문서는 특히 HTTP 메소드, 상태 코드, 헤더 필드 등의 정의와 의미를 다룹니다. HTTP/1.1은 웹에서 서버와 클라이언트 간의 통신을 관리하는 주요 프로토콜입니다.
주요 내용
- HTTP 메소드 정의:
- GET: 서버에서 리소스를 가져옵니다. 안전하고 멱등성(Idempotency)을 가집니다.
- HEAD: GET과 유사하지만, 응답에 본문이 없습니다.
- POST: 서버로 데이터를 전송하여 리소스를 생성하거나 처리를 요청합니다.
- PUT: 지정된 리소스를 대체하거나 새로 생성합니다. 멱등성을 가집니다.
- DELETE: 지정된 리소스를 삭제합니다. 멱등성을 가집니다.
- OPTIONS: 서버가 지원하는 메소드를 설명합니다.
- PATCH: 리소스의 일부를 업데이트합니다.
- 상태 코드:
- 1xx (정보): 요청을 받았고, 처리 중입니다.
- 2xx (성공): 요청이 성공적으로 처리되었습니다. (예: 200 OK)
- 3xx (리다이렉션): 요청이 다른 URL로 리다이렉션됩니다. (예: 301 Moved Permanently)
- 4xx (클라이언트 오류): 클라이언트의 요청이 잘못되었습니다. (예: 404 Not Found)
- 5xx (서버 오류): 서버가 요청을 처리하는 데 실패했습니다. (예: 500 Internal Server Error)
- 헤더 필드:
- 요청과 응답에 사용되는 여러 헤더 필드의 정의가 포함됩니다. (예:
Content-Type
,Accept
,Authorization
등)
- Content Negotiation:
- 클라이언트와 서버 간의 데이터 교환에서 사용할 데이터 형식, 언어 등을 협상하는 방식에 대해 설명합니다.
요약
RFC 7231은 HTTP/1.1의 주요 기능을 정의하는 문서로, 웹 기반 애플리케이션이 클라이언트와 서버 간에 어떻게 상호 작용하는지에 대한 기본적인 규칙과 구조를 제공합니다. 이는 웹 기술의 근간이 되는 문서 중 하나로, HTTP 메소드와 상태 코드의 의미를 이해하는 데 필수적입니다.
RFC 자체는 인터넷 기술의 발전을 문서화하고 표준화하는 중요한 역할을 하며, RFC 7231은 특히 HTTP 프로토콜에 대한 핵심 문서로 자리 잡고 있습니다.
3. fetch api 옵셥 키값
fetch
API는 JavaScript에서 서버와 네트워크 통신을 쉽게 할 수 있도록 해주는 기능입니다. fetch
함수는 HTTP 요청을 생성하고, 이 요청에 대한 응답을 비동기적으로 처리할 수 있습니다. fetch
함수는 첫 번째 인자로 요청할 URL을 받고, 두 번째 인자로는 선택적으로 다양한 설정을 포함한 옵션 객체를 전달할 수 있습니다.fetch
API의 옵션 키 값 설명
fetch
함수의 두 번째 인자인 옵션 객체에서는 다양한 HTTP 요청 옵션을 설정할 수 있습니다. 이 옵션을 통해 메소드, 헤더, 본문 등 요청의 세부 사항을 지정할 수 있습니다.- method: HTTP 요청 메소드를 지정 (
GET
,POST
,PUT
,DELETE
등).
- headers: 요청에 포함할 HTTP 헤더를 설정 (
Content-Type
,Authorization
등).
- body: 요청의 본문을 설정 (
POST
,PUT
,PATCH
메소드에서 사용), JSON 데이터를 전송할 경우 문자열로 변환해야 함.
- mode: CORS 관련 설정 (
cors
,no-cors
,same-origin
).
- credentials: 쿠키나 인증 정보를 포함할지 여부 (
same-origin
,include
,omit
).
- cache: 캐시 사용 방식을 지정 (
default
,no-store
,reload
등).
- redirect: 리다이렉션 처리 방식 (
follow
,manual
,error
).
이 옵션들을 사용해 네트워크 요청을 상세히 제어할 수 있습니다.
4. MIME 타입
MIME 타입"은 Multipurpose Internet Mail Extensions의 약자로, 인터넷에서 파일의 형식을 지정하는 표준 방식입니다. MIME 타입은 주로 웹에서 HTTP 프로토콜을 통해 데이터 전송 시, 전송되는 파일이나 데이터의 종류를 나타내는 데 사용됩니다. 이를 통해 서버와 클라이언트는 전송된 데이터가 어떤 형식인지 알고, 그에 맞는 처리를 할 수 있습니다.
MIME 타입의 구조
MIME 타입은 기본적으로 두 부분으로 구성되며, 슬래시(
/
)로 구분됩니다:
type/subtype
- type: 데이터의 대분류를 나타냅니다.
- subtype: 데이터의 구체적인 형식을 나타냅니다.
주요 MIME 타입 예시
- text/
- text/plain: 일반 텍스트 파일.
- text/html: HTML 문서.
- text/css: CSS 파일.
- text/javascript: JavaScript 파일.
- image/
- image/jpeg: JPEG 이미지.
- image/png: PNG 이미지.
- image/gif: GIF 이미지.
- image/svg+xml: SVG 이미지.
- audio/
- audio/mpeg: MP3 오디오 파일.
- audio/wav: WAV 오디오 파일.
- audio/ogg: OGG 오디오 파일.
- video/
- video/mp4: MP4 비디오 파일.
- video/webm: WebM 비디오 파일.
- video/ogg: OGG 비디오 파일.
- application/
- application/json: JSON 데이터.
- application/xml: XML 데이터.
- application/pdf: PDF 파일.
- application/zip: ZIP 압축 파일.
- application/octet-stream: 임의의 바이너리 데이터(파일 다운로드에 주로 사용).
- multipart/
- multipart/form-data: 파일 업로드 시 주로 사용되는 형식으로, 여러 부분으로 나누어진 데이터를 포함할 수 있습니다.
MIME 타입의 역할
- 브라우저 처리: 웹 브라우저는 MIME 타입을 보고 해당 데이터를 어떻게 처리할지 결정합니다. 예를 들어,
text/html
타입을 받으면 브라우저는 이를 HTML 문서로 렌더링합니다.
- 보안: 잘못된 MIME 타입을 설정하면 악성 스크립트가 실행되는 등의 보안 문제가 발생할 수 있습니다. 따라서 서버에서 올바른 MIME 타입을 지정하는 것이 중요합니다.
- 파일 전송: 서버가 클라이언트로 파일을 전송할 때, MIME 타입을 통해 클라이언트에게 파일의 형식을 알려줍니다.
요약
MIME 타입은 파일이나 데이터의 형식을 나타내는 표준화된 방식으로, 웹에서 다양한 파일 형식을 처리하고 전송하는 데 중요한 역할을 합니다.
- ‣
Share article