아주 그냥 문제 투성이다 ..
status 500 에러는 요청 처리 과정에서 서버가 예상하지 못한 상황에 처했다는 것을 나타낸다고 한다.
Intellij 상에서는 이런 오류 내용들이 나왔다.
Servlet.service() for servlet [dispatcherservlet] in context with path [] threw exception
[Request processing failed: org.springframework.web.client.ResourceAccessException..
일단 오류가 발생한 부분의 코드를 다시 살펴보기로 했다.
Controller과 Service 클래스를 만들어 사용하고 있는데, 코드를 잘못 입력하지 않았는지 확인해보았다.
또한 요구하는 필드가 제대로 주입되었는지도 확인해보았다.
하나하나 뜯어서 읽어봤는데 잘못 입력한 부분은 없었다.
출처: https://junyharang.tistory.com/200
이렇게나 허무할 수가 없다.
요청하는 URL을 만들어주는 과정에서 주소를 잘못 입력했다.
http://locaohost:8080
이렇게 입력했다 .. 자세히 안보면 뭐가 틀린지 모르는데, 오타를 냈다.
http://localhost:8080
허무하게 금방 해결되었다.
강의를 보면서 코드를 따라 입력하다 보니, 급한 마음에 오타를 낸 것 같다.
좀 더 천천히 따라해도 될 것 같다.
무엇보다, 주소를 잘못 입력해서 실행하려는 경우에는 status 500 에러가 발생한다는 것을 눈으로 확인해 볼 수 있었다.
오류 파티의 축복이 끝이 없다. 이번엔 Bad request다 ..
이름부터 .. Bad.. 무엇을 잘못 입력했을까 ?
Resolved [org.springframework.web.bind.MissingRequestHeaderException:
Required request header 'Authorization' for method parameter type String is not present]
Intellij 상에서는 이런 오류 내용을 보여주고 있었다.
해당 400 Bad Request 오류는 Controller 코드 상에서 파라미터 값을 요구했는데, 요청에서 해당 필수 파라미터 값이 존재하지 않기 때문에 발생하는 오류라고 한다.
출처: https://gongbuzzangzoa.tistory.com/326
그렇다면 Controller 코드에서 파라미터를 잘못 넣어주었나 ..? 데이터 형태를 잘못 줬나 ..?
코드를 다시 찬찬히 읽어보니 잘못 입력한 부분은 없었다.
진짜 처음부터 끝까지 5번은 다 읽어봤는데, 잘못된 부분이 없었다 .. 그럼 왜 ..?
한숨이 절로 나온다.
Header에서 해줘야 하는데,, 안해주니 당연히 잘못된 요청이다..
Header에서 입력받아와 ~ 라고 코드 실컷 짜놓고
뜬금없이 Param에다가 값을 입력해서 전달해주니 Postman이 얼마나 황당했을까 ..?
어쩐지 입력을 계속 하는데, 주소창에 자꾸 값이 보였다 ..
선생님 코드에서는 주소창에서는 변화가 없었는데 말이다 ..
파라미터로 어떤 값을 요청했는지 잘 확인하고 실행해야 한다.
예를 들어 Header 값을 요구해놓고 뜬금없이 Param으로 값을 전달해준다거나,, 하면
Bad Request 오류가 발생할 수 있다 ..
나는야 오류 수집가
한 번에 깔끔하게 내용을 넘어가질 못한다.
주소 입력하고 실행하려고 Send를 눌렀는데 ..?
뭐 다른 오류 내용이 나온 것도 아니고 Could not get response라는 오류가 떴다 ..
역시나 또 코드부터 살펴봤다.
이번엔 정말 .. 맹세코 코드에서 오타낸 것이 없었다.
(위에서도 그랬긴 했지만 ..)
그렇다면 내가 또 ..?
Postman에서 실행할 때 뭔가를 잘못 선택한 걸까?
정말 징글징글하다. 이번에는 주소를 잘못 입력했다.
https://localhost:8080 ...
이렇게 작성했다 ..
http://localhost:8080 ..
이렇게 입력했어야 했는데 말이다 ..
http를 https로 잘못 입력했다 ..
둘의 차이점이 무엇인지 궁금해져서 검색해보았다.
출처: https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
HTTPS | HTTP |
---|---|
Hypertext Transfer Protocol Secure | Hypertext Transfer Protocal |
HTTP의 확장 버전 혹은 더 안전한 버전 | 네트워크의 통신을 작동하게 하는 기본적인 기술 |
브라우저와 서버가 데이터를 전송하기 전 안전하고 암호화된 연결을 설정 | 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 혹은 프로토콜 |
독립된 인증 기관(CA)에서 SSL/TLS 인증서를 획득해야 함 | OSI 네트워크 통신 모델의 애플리케이션 계층 프로토콜 |
신뢰 구축을 위해 데이터 교환 전, 브라우저와 인증서를 교환함 | 여러 유형의 요청과 응답을 정의함 |
Https는 Http의 확장 버전이다.
Http로 데이터가 그냥 전송되면 누군가 데이터를 가로채갈 수 있기 때문에 보안 기능이 추가된 Https가 더 안전한 버전으로, 최신 웹 사이트는 Https를 사용하는 것 같다.
Postman에서 실행할 때, Http인데 Https로 잘못 입력했다거나,, 한다면 Could not get response의 오류를 확인해 볼 수 있다.. ^^..