일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 시스템호출
- 스프링
- 카카오 코테
- 파이썬
- 코테
- 해시
- nestJS
- 알고리즘
- spring boot
- 구조체배열
- 카카오
- 카카오 알고리즘
- git
- AWS
- python
- C++
- nestjs typeorm
- thymeleaf
- 코딩테스트
- OpenCV
- @Autowired
- 프로그래머스
- TypeORM
- @Component
- C언어
- nestjs auth
- Spring
- 가상면접사례로배우는대규모시스템설계기초
- Nodejs
- 컴포넌트스캔
- Today
- Total
공부 기록장 💻
[HTML/Web] URL 링크 인코딩 과정에서 % 뒤에 숫자 25가 자동적으로 추가되는 에러 해결하기 (HTML URL Encoding Reference 참고) 본문
[HTML/Web] URL 링크 인코딩 과정에서 % 뒤에 숫자 25가 자동적으로 추가되는 에러 해결하기 (HTML URL Encoding Reference 참고)
dream_for 2023. 2. 21. 11:22
공공데이터포털의 날씨 예보 Open API를 호출하여 진행중인 프로젝트에 적용하는 상황에서,
Service Key에 포함되어 있는 ASCII charcater code중 하나인 % 가 인코딩 되는 과정에서 오류가 발생하며 API 호출이 제대로 되지 않는 이슈가 있었다.
부여받은 Encoding용 일반 인증키는 아래와 같다.
중간중간 보이는 % 문자가 계속해서 문제를 발생시켰다.
구글 검색 시 % 문자가 포함된 문장을 검색하면 원하는 결과를 얻기가 어렵다.
결국 ChatGPT를 활용하여 답을 얻고자 했다.
역시나 원하는 결과를 얻을 수 있었다..!
Request URL에 포함되어 있는 % 문자를 인코딩 하는 과정에서 %25 로 해석을 하게 되어
자동적으로 %뒤에 25를 붙이게 된다는 내용이었다.
위의 질문 위에서 이미 Java Code에 대한 질문이 몇 개 더 있어서 그랬던 건지,
친절하게 %25를 replace하는 방법까지 알려줬다.
(물론 질문을 정확히 하지 않은 탓에 chat gpt가 제대로 이해하지 못한 결과 %를 %25로 replace하는 코드를 적어주었다..)
역시나 위의 결과를 바탕으로 request url을 직접 출력해보니 중간중간 25 숫자들이 추가되어 문제가 발생한 것임을 깨달을 수 있었다.
w3wschool 사이트에서 URL encoding reference를 읽어보니, 역시 문자 '%'가 안전하지 않은 환경에서 "%25" 로 변환되어 나타난다는 것을 다시 한 번 확인할 수 있다.
직접 인증받은 service Key와, URL에서 API를 호출하며 변환된 service Key를 확인해보니 역시나 25 문자열이 추가되어 있다.
replace 메서드를 이용해 25숫자가 중간중간 추가가 된 것을 제거해주고 나니,
작성한 테스트케이스 통과!
'# Tech Studies > Web' 카테고리의 다른 글
[Web/Network] 웹 소켓(Web Socket)의 개념 (0) | 2022.10.12 |
---|---|
[Web] 웹 브라우저 쿠키(Cookie)와 세션(Session)의 개념 (1) | 2022.08.24 |
[Web/Backend/Auth] JWT란 무엇인가? (0) | 2022.08.23 |
[Web Data Format] XML, JSON 포맷 파일이란? (0) | 2021.11.27 |
[Backend/Web Server/Django Deploy] 웹 서버와 WAS, Django 배포 (0) | 2021.08.21 |