# Table of Contents
# MIME type
MIME Type
은 인터넷에서 전달되는 데이터의 타입을 알려주는 식별자로 Media type
이라고도 한다. 모든 타입은 이 곳 (opens new window)에서 확인할 수 있으며, 자주 사용하는 타입은 다음과 같다.
text/plain
: 기본 문자열application/json
: JSON 형식의 데이터application/x-www-form-urlencoded
: HTML의<form>
태그multipart/form-data
: 이미지와 문자열처럼 두 종류 이상의 데이터 함께 전송할 때 사용. 주로 파일 업로드에 사용.image/png
: PNG 이미지 파일video/mpeg
: mpeg 동영상 파일
# cURL 사용법 정리
다음과 같이 응답하는 스프링부트 API 서버가 있다고 가정하자.
# GET 요청
-X GET
옵션으로 HTTP GET 요청을 보낼 수 있으며, -G
뒤에 URL을 명시한다.
$ curl -X GET -G 'http://localhost:8080'
Hello World
Query Parameter
는 두 가지 방법으로 전달할 수 있다.
$ curl -X GET -G 'http://localhost:8080?name=paul&age=35'
$ curl -X GET -G 'http://localhost:8080' \
-d 'name=paul' \
-d 'age=35'
Path Variable
은 다음과 같은 방법으로 전달할 수 있다.
$ curl -X GET -G 'http://localhost:8080/post/1'
# POST 요청
-X POST
옵션으로 HTTP POST 요청을 보낼 수 있다.
$ curl -X POST -G 'http://localhost:8080'
-d
또는 --data
옵션으로 JSON 데이터를 전송할 수도 있다.
$ curl -X POST -G 'http://localhost:8080' \
-H 'Content-Type: application/json' \
-d '{"name": "paul", "age": "35"}'
# PUT 요청
$ curl -X PUT -G 'http://localhost:8080'
# PATCH 요청
$ curl -X PATCH -G 'http://localhost:8080'
# DELETE 요청
$ curl -X DELETE -G 'http://localhost:8080'
# 상세 보기
-i
, --include
옵션은 응답의 데이터와 헤더를 모두 보여준다.
$ curl -i -G 'http://localhost:8080'
HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
Content-Length: 11
Date: Mon, 09 May 2022 12:41:19 GMT
Hello World
대문자 -I
옵션은 응답의 헤더만을 보여준다.
$ curl -I -G 'http://localhost:8080'
HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
Content-Length: 11
Date: Mon, 09 May 2022 13:22:28 GMT
-v
, --verbose
옵션은 요청과 응답 모두와 통신 과정을 상세하게 보여준다.
$ curl -v -G 'localhost:8080'
* Trying 127.0.0.1:8080...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.79.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200
< Content-Type: text/plain;charset=UTF-8
< Content-Length: 11
< Date: Mon, 09 May 2022 12:34:07 GMT
<
* Connection #0 to host localhost left intact
Hello World
# Header 추가
-H
또는 --header
옵션으로 요청 헤더를 추가할 수 있다.
$ curl -G 'http://localhost:8080' \
-H 'Content-Type: application/json'
여러 개의 헤더를 추가할 수도 있다.
$ curl -G 'http://localhost:8080' \
-H 'Content-Type: application/json' \
-H 'Content-Length: 0'