관리 메뉴

Rootable의 개발일기

HTTP Content-Type 본문

Network

HTTP Content-Type

dev-rootable 2024. 5. 4. 12:31

🧾 Content-Type이란?

 

Content-Type 헤더는 HTTP 통신에서 미디어 데이터의 타입(MIME type)을 지정하는 데 사용되며, 이는 리소스의
원래 타입을 나타내거나, 응답에서 실제 콘텐츠의 타입을 제공하거나, 요청에서 클라이언트가 보내는 데이터의 타입을
알려준다.

 

📌 Difference by Type

 

✅ application/x-www-form-urlencoded

 

HTML form을 통한 POST 전송 방식 중 가장 기본이 되는 Content-Type

 

가장 큰 특징은 전송하는 데이터를 URL 인코딩 후 웹 서버로 전송한다는 점이다.

 

인코딩이 필요하기 때문에 크기가 큰 데이터 전송에는 적합하지 않다.

 

🔍 인코딩 규칙

1. key=value 형식

요청 데이터를 키와 값의 쌍으로 구성한다. 각 쌍은 '='로 연결된다.

2. & 구분

각 key=value 쌍은 '&'로 구분된다. 이러한 형식을 통해 여러 개의 데이터를 한 번에 전송할 수 있다.

3. URL Encoding

특수 문자나 공백과 같은 부분은 URL 인코딩 규칙(RFC1738)에 따라 인코딩 된다. 특정 문자들은 '%'  기호와
그 문자의 ASCII 코드를 표시하여 인코딩 된다.

 

✅ multipart/form-data

 

파일이나 이미지 같은 바이너리 데이터가 포함된 데이터를 보낼 때 사용하는 Content-Type

 

주요 특징은 웹 클라이언트가 요청을 보낼 때 Form 데이터를 여러 부분으로 나눠서 보낼 수 있다는 것이다. 그래서 대량의
데이터를 보내는 데 적합
하다.

 

각 부분은 각각의 Content-Disposition 헤더와 내용으로 구성됨

 

서로 다른 두 개의 Content-Type을 가진 데이터를 하나의 HTTP 요청 바디에 보내야 하는 경우에 사용된다.

 

 

 

"WebKit..." 라는 boundary로 구분되어 있으며, name이라는 String 데이터와 이미지(png) 데이터가 함께 전송되는 것을 볼 수 있다.

 

✅ application/json

 

데이터를 JSON 형식으로 전송하는 Content-Type

 

❓ JSON(JavaScript Object Notation)

데이터를 저장하거나 전송할 때 많이 사용되는 경량의 데이터 교환 형식

JSON 형식은 사람과 기계 모두 이해하기 쉬우며 용량이 적어 최근에는 JSON 형식을 많이 사용한다.

서버와 클라이언트 교류에서 많이 사용하며, Javascript를 이용하여 JSON 형식의 문서를 쉽게 Javascript 객체로
변환할 수 있다. 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링할 수 있는
라이브러리를 제공
한다는 이점이 있다.

 

 

References:

 

https://velog.io/@haron/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-applicationx-www-form-urlencoded-applicationjson-%EB%AC%B4%EC%8A%A8-%EC%B0%A8%EC%9D%B4%EA%B0%80-%EC%9E%88%EB%8A%94%EA%B1%B8%EA%B9%8C

 

[네트워크] application/x-www-form-urlencoded, application/json 무슨 차이가 있는걸까?

PHP 로 되어있던 코드를 JAVA 로 이관하면서, Content-Type 이 application/x-www-form-urlencoded, application/json 둘다 요청받을 수 있던 코드에서 application/json 만 받을 수 있도록 변경된 케이스

velog.io

 

https://velog.io/@surim014/JSON%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

JSON이란 무엇인가?

JSON (JavaScript Object Notation) JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 Javascript에서 객체를 만들 때 사용하는 표현식을 의미한

velog.io

 

'Network' 카테고리의 다른 글

SSR에 JWT 적용이 부적합한 이유  (0) 2024.06.08
동기와 비동기 통신  (0) 2024.05.04
OAuth 2.0  (0) 2024.03.31
JWT vs Session  (0) 2024.01.26
JWT (JSON Web Token)  (4) 2024.01.25