Base64는 바이너리 데이터를 아스키 코드 일부와 일대일로 매칭되는 문자열로 단순 취환하는 인코딩 방식이다.
Base64 인코딩 방식을 사용하는 이유는 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 64개의 아스키 문자로 이루어진 텍스트 기반 데이터로 다룰 수 있기 때문이다. JSON과 같은 텍스트 기반 데이터에 이미지 파일을 포함시키려 할 때, 바이너리 형식인 이미지 파일을 Base64로 인코딩하여 텍스트 기반의 JSON에 포함시켜 이를 사용할 수 있게 된다.
데이터 길이를 명시적으로 구분할 수 있는 JSON이나 HTTP 메시지 바디와 같은 곳에서는 패딩이 무조건 필요한 건 아니지만, TCP처럼 스트림 형태로 데이터를 주고받는 환경에서는 어디까지의 데이터를 디코딩 해야하는지 길이를 알아야 하기 때문에 패딩을 추가해야 한다.
Base64로 인코딩 된 문자열을 URL에 포함시켜야 할 때가 있을 수 있다. 이러한 상황에서는 URL 주소에서 사용할 수 없는 문자들을 다른 문자들로 치환하여 사용해야 한다.
+
-> -
/
-> _
=
-> .
(URL 주소는 길이를 알기 때문에 패딩을 생략한다.)