폼 인코딩
Coddy의 터미널로 네트워킹 배우기 코스 레슨. 47개 중 34번째.
-d를 사용하면 curl은 본문의 형식을 설명하는 헤더를 추가합니다:
Content-Type: application/x-www-form-urlencoded이 긴 이름은 HTML 폼이 예전부터 사용해 온 형식입니다. key=value 쌍을 &로 연결한 형식입니다. 서버는 해당 헤더를 읽고 본문을 그 문자들을 기준으로 나눠야 한다는 것을 알 수 있습니다.
그러면 자연스럽게 이런 질문이 생깁니다. 값에 &나 =가 포함되어 있으면 어떻게 될까요? 이 문자는 이스케이프해야 하며, 퍼센트 기호와 16진수 두 자리로 작성합니다. 공백은 %20 또는 +가 되고, 앰퍼샌드는 %26이 됩니다.
--data-urlencode는 이 이스케이프를 대신 처리해 주므로, 사람이 입력한 값에는 이 옵션을 사용하는 것이 좋습니다. 가공하지 않은 사용자 입력을 일반 -d로 보내면 필드가 첫 번째 앰퍼샌드에서 알 수 없이 잘리는 원인이 됩니다.
챌린지
어려움curl이 선택하는 헤더를 확인하세요.
- 포트 9124에서 캡처 리스너를 시작하세요
-d를 사용하여a=1을 POST하세요req.txt에서 Content-Type 줄을 출력하세요
예상 출력:
Content-Type: application/x-www-form-urlencoded대소문자를 구분하지 않고 일치시키며 줄의 시작 부분에 고정하세요.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
터미널로 네트워킹 배우기의 모든 레슨
직접 연습해 보세요: Terminal 플레이그라운드