encodeURIComponent

agnusdei·2023년 7월 20일
0
await lastValueFrom(
      // Param 으로 전송하기 위해 encodeURIComponent 를 사용합니다.
      this.httpClient.delete(
        `${this.fileServer}/upload/${encodeURIComponent(item.url!)}`
      )
    );

encodeURIComponent 함수는 특수 문자를 포함한 문자열을 안전하게 URL에 삽입할 수 있는 형식으로 인코딩하기 위해 사용됩니다. 이 함수는 문제를 일으킬 수 있는 문자들을 퍼센트 인코딩(예: 공백을 %20으로 변환)으로 변경합니다.

URL에서 경로, 쿼리 또는 fragment를 구성하는 각 세그먼트에는 일정한 중요 문자와 예약 문자가 있으며, 이러한 문자들은 그대로 사용될 경우 해당 세그먼트에서 원치 않은 분리 기능이 작동하게 됩니다. 따라서, 문자들은 대응되는 ASCII 값으로 인코딩하여 적절하게 처리됩니다.

예를 들어, 일반 URL은 다음 구조를 가집니다.

https://example.com/path?query=value#fragment

이 경우 /, ?, =, #와 같은 문자들은 구분자 역할을 하므로 URL의 값을 전달할 때 그대로 사용할 수 없습니다. 이런 문자들을 전송하기 위해서는, 해당 문자들을 퍼센트 인코딩으로 변환한 후 전송해야 합니다.

encodeURIComponent를 사용하면 이러한 문제가 해결되어, 전송하려는 URL이 다른 URL 세그먼트와 충돌하지 않고 URL의 일부로서 안전하게 전송될 수 있습니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

글이 많은 도움이 되었습니다, 감사합니다.

답글 달기