Postman을 사용하여 스프링의 @ResponseBody로 api 통신을 하고 있던 와중에 다음과 같은 오류를 겪게 되었다.
Error parsing HTTP request header
Invalid character found in method name HTTP method names must be tokens
대충 에러를 보면 HTTP 요청헤더에 뭔가 잘못되었다고 하고 HTTP 메서드 이름에서 유효하지 않은 문자가 발견됐다는 것이다. 그리고 토큰화 되어야 한다고 한다. 먼저 헤더부터 살펴봤다.
Content-type도 application/json으로 일치하고, Accept는 따로 설정하지 않았으니까 별 문제가 없을 것이고 Connection 또한 tcp 연결을 time-out 만큼 유지하고, max 까지 하는 것인데 다른 설정이 없으니 문제가 없을 것이라고 판단했다.
이어서 HTTP Method도 확인해봤다. 동일하게 Post로 지정을 해놓은 것을 확인 할 수 있었다. 그래도 여기서 의문은 must be tokens 였다. HTTP Method를 제대로 못 받아오는 것 같은데...
Postman에서 발생한 오류를 살펴봤다.
헤더에도 문제가 없어보이고, HTTP 바디 메시지에도 문제가 없어보인다.
그런데, 에러메시지에서 이상한 부분을 볼 수 있었다. third_party 라이브러리에 ssl tls가 보인다.
내가 알고 있는 지식 안에서는 암호화 기반 인터넷 보안 프로토콜이고, https를 사용하는데 사용되는 것으로 알고있다.
설마하고, URL을 확인해봤다.
URL을 https로 해뒀었다... 하하..
당연하게도 https를 http로 바꿈으로써 문제를 해결 할 수 있었다.
그래도 오류를 찾아가는 과정에서 최근에 공부한 HTTP 웹 지식이 큰 도움이 되었던 것 같다!
'Backend > Spring' 카테고리의 다른 글
Spring Security 5 -> Spring Security 6 에서의 Session 변경점 (0) | 2023.08.20 |
---|---|
Spring Security OAuth2 주요 용어와 인증 방식 (0) | 2023.08.14 |
Spring AOP (0) | 2023.04.26 |
스프링의 빈 후처리기 (0) | 2023.04.24 |
[Intellij] JUnit Test 시 No tests found for given includes: (0) | 2023.04.22 |