HTTP 요청 헤더의 Content-Type은 클라이언트가 서버에게 전송하는 데이터의 유형 및 형식을 지정하는 데 사용된다.
이 헤더는 주로 POST 요청과 함께 사용되며, 요청 본문의 데이터 유형을 명시한다.
아래는 Content-Type 헤더의 주요 값들에 대한 설명이다.
application/x-www-form-urlencoded
application/x-www-form-urlencoded은 웹에서 폼 데이터를 전송하기 위한 인코딩 방식 중 하나이다.
HTML 폼에서 입력된 데이터를 서버로 전송할 때 사용되며, 일반적으로 HTTP POST 요청에서 사용된다.
기본적으로 HTML 폼에서 사용자가 입력한 데이터는 URL 인코딩되어 서버로 전송된다.
즉, application/x-www-form-urlencoded은 이러한 URL 인코딩된 데이터를 서버로 전송하는 방식을 나타낸다.
인코딩 규칙
- 전송되는 데이터는 각각의 폼 필드와 값이 name=value 형식으로 되어 있다.
- 각각의 필드와 값은 & 기호로 구분된다.
- 특수 문자는 % 기호 다음에 해당 문자의 ASCII 코드를 나타내는 두 자리 16진수로 인코딩된다.
- 공백은 + (기본) 또는 %20 로 나타낸다.
ex)
name = John Wick
email = wick@example.com
name=John+Wick&email=wick%40example.com
인코딩이 필요하기 때문에 크기가 큰 데이터는 해당 타입으로 보내기 적합하지 않을 수 있다.
application/json
application/json은 웹에서 데이터를 전송할 때 사용되는 특별한 형식 중 하나이다.
application/json은 JSON 형식의 데이터를 나타내며, 주로 HTTP 요청 및 응답에서 사용된다.
JSON(JavaScript Object Notation)은 데이터를 효과적으로 표현하고 교환하기 위한 경량의 데이터 교환 형식
JSON은 사람과 기계가 모두 읽기 쉽고 쓰기 쉬운 형식이며, 자바스크립트 객체 표기법을 기반으로 한다.
JSON은 언어에 독립적이며 여러 프로그래밍 언어에서 지원된다.
application/json으로 전송되는 데이터는 일반적으로 키-값 쌍의 목록이나 배열로 구성된다.
각 키-값 쌍은 "key": "value"와 같은 형식으로 표현되며, 배열은 [item1, item2, ...]과 같이 표현된다.
{
"name": "John Wick",
"age": 30,
"isStudent": false,
"courses": ["Math", "History", "English"]
}
그 외 Content-Type
multipart/form-data
- 파일 업로드와 같이 여러 종류의 데이터를 함께 전송할 때 사용된다.
- 각각의 데이터 파트는 개별적으로 인코딩된다.
application/xml 또는 text/xml
- XML 형식의 데이터를 전송할 때 사용된다.
text/plain
- 일반 텍스트 데이터를 전송할 때 사용된다.
- 예: Hello, World!
application/octet-stream
- 이진 데이터, 즉 파일 등의 바이너리 데이터를 전송할 때 사용된다.
'Web' 카테고리의 다른 글
REST API (0) | 2020.11.12 |
---|---|
REST (0) | 2020.11.12 |
HTTP Status Code (0) | 2020.11.12 |
브라우저 동작 원리 (0) | 2020.11.09 |
HTTP Method (0) | 2020.10.31 |