Menu
Coddy logo textTech

폼 인코딩

Coddy의 터미널로 네트워킹 배우기 코스 레슨. 47개 중 34번째.

-d를 사용하면 curl은 본문의 형식을 설명하는 헤더를 추가합니다:

Content-Type: application/x-www-form-urlencoded

이 긴 이름은 HTML 폼이 예전부터 사용해 온 형식입니다. key=value 쌍을 &로 연결한 형식입니다. 서버는 해당 헤더를 읽고 본문을 그 문자들을 기준으로 나눠야 한다는 것을 알 수 있습니다.

그러면 자연스럽게 이런 질문이 생깁니다. 값에 &=가 포함되어 있으면 어떻게 될까요? 이 문자는 이스케이프해야 하며, 퍼센트 기호와 16진수 두 자리로 작성합니다. 공백은 %20 또는 +가 되고, 앰퍼샌드는 %26이 됩니다.

--data-urlencode는 이 이스케이프를 대신 처리해 주므로, 사람이 입력한 값에는 이 옵션을 사용하는 것이 좋습니다. 가공하지 않은 사용자 입력을 일반 -d로 보내면 필드가 첫 번째 앰퍼샌드에서 알 수 없이 잘리는 원인이 됩니다.

challenge icon

챌린지

어려움

curl이 선택하는 헤더를 확인하세요.

  1. 포트 9124에서 캡처 리스너를 시작하세요
  2. -d를 사용하여 a=1을 POST하세요
  3. req.txt에서 Content-Type 줄을 출력하세요

예상 출력:

Content-Type: application/x-www-form-urlencoded

대소문자를 구분하지 않고 일치시키며 줄의 시작 부분에 고정하세요.

직접 해보기

터미널
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

터미널로 네트워킹 배우기의 모든 레슨

직접 연습해 보세요: Terminal 플레이그라운드