"curl -XPUT --data-binary @${file_path}"와 "curl -XPUT -T ${file_path}"의 차이점은 무엇입니까?

"curl -XPUT --data-binary @${file_path}"와 "curl -XPUT -T ${file_path}"의 차이점은 무엇입니까?

컬을 사용하여 POST하거나 파일을 URL에 PUT하는 경우 파일 콘텐츠를 로드하는 두 가지 방법이 있습니다.

  1. -T ${file_path}
  2. --data-binary @${file_path}또는 -d $@{file_path}(ASCII 데이터 파일의 경우)

이 두 가지 옵션의 차이점은 무엇입니까?

답변1

이러한 옵션 간의 차이점을 이해하려면 다음을 읽어보세요.매뉴얼 페이지아니면 몇 가지 실험을 해보세요.

매뉴얼 페이지

-d, --데이터

지정된 데이터를 다음으로 보냅니다.우편 엽서사용자가 HTML 양식을 작성하고 제출 버튼을 누를 때 브라우저가 요청하는 것과 마찬가지로 HTTP 서버에 요청합니다. 이렇게 하면 컬이 다음을 사용하여 데이터를 서버에 전달하게 됩니다.콘텐츠 유형 애플리케이션/x-www-form-urlencoded. [...]

-T, --파일 업로드

그러면 지정된 로컬 파일이 원격 URL로 전송됩니다. [...] HTTP(S) 서버에서 사용되는 경우놓다명령이 사용됩니다. [...]

몇 가지 실험을 해보세요

듣기 모드에서 netcat(macOS 버전)을 실행합니다.

nc -l localhost 8989

테스트 파일 생성:

echo test>test

컬 명령을 실행하고 청취 측에서 결과를 확인하십시오.

% curl -d "name=test" localhost:8989

POST / HTTP/1.1
Host: localhost:8989
User-Agent: curl/7.84.0
Accept: */*
Content-Length: 9
Content-Type: application/x-www-form-urlencoded

name=test


% curl -T test localhost:8989

PUT /test HTTP/1.1
Host: localhost:8989
User-Agent: curl/7.84.0
Accept: */*
Content-Length: 5
Expect: 100-continue

test

귀하의 질문에 답하기 위해 이 -d옵션은 x-www-form-urlencoded 형식의 데이터를 전송하여 POST 요청을 만들고 -T데이터 형식을 지정하지 않고 PUT 요청을 보냅니다.

관련 정보