반응형

전체 글 145

내가 볼라고 정리한 HTTP Status Code

HTTP Status Code 1XX : 정보 2XX : 성공 3XX : 리다이렉션 4XX : 클라이언트 오류 5XX : 서버 오류 2XX 200 OK : 요청 성공(성공의 의미는 HTTP method에 따라 달라짐) 201 Created: 새로운 리소스 생성 202 Accepted: 요청을 수신했지만 그에 대한 행동은 하지 않았음 204 No Content: 요청에 대해 보내줄 콘텐츠는 없지만, 헤더는 의미가 있을 수 있음 3XX 301 Mover Permanently: 영구 리다이렉션, 요청 메서드가 GET으로 변하고 본문이 제거될 수 있음 308 Permanent Redirect: 301과 기능은 같지만, 요청 메서드와 본문 유지 302 Found: 일시 리다이렉션, 요청 메서드가 GET으로 변하고..

카테고리 없음 2023.02.05

내가 볼라고 정리한 HTTP Method

HTTP Method 종류 GET: 특정 리소스의 표시를 요청. 데이터를 받기만 함 HEAD: GET메서드와 동일한 응답을 요구하지만, 응답 본문은 받지 않음 POST: 특정 리소스에 엔티티를 제출. 종종 서버의 상태의 변화나 부작용을 일으킴 PUT: 특정 리소스를 요청 payload로 바꿈 DELETE: 특정 리소스를 삭제 CONNECT: 목적 리소스로 식별되는 서버로의 터널을 맺음 OPTIONS: 목적 리소스의 통신을 설정하느데 쓰임 TRACE: 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 함 PATCH: 특정 리소스의 부분만을 수정 GET vs POST GET POST 캐시 O X 브라우저 기록 O X 북마크 O X 길이제한 O X 뒤로가기 뒤로감 데이터가 다시 제출 데이터 유형 제..

카테고리 없음 2023.02.05

[Java] jwt 라이브러리에서 Date를 쓰는 이유

며칠을 찾다가 chatGPT에게 물어봤다. 가끔 틀린 답변을 내놓기도 해서 어디서 그런 정보를 찾았는지도 물어보았다. 우선, 결론은 JWT 라이브러리가 Unix epoch 이후의 초 수를 나타내기 때문이다. LocalDateTime 클래스는 특정 시간대나 달력을 참조하지 않고 날짜와 시간을 나타내는데 Date 클래스는 특정시간대의 날짜,시간을 잘 주기때문이란다. chatGPT는 RFC 7519를 참고하였다고 했다.

Java 2023.01.14

[Git] 특정 파일의 히스토리 삭제

java_pid**.hprof파일의 용량때문에 push를 하다 오류가 났습니다. 찾아보니 깃허브는 50MB보다 큰 파일을 추가, 업데이트 하는 경우 알림을 받고 100MB보다 큰 파일은 차단하고있었습니다. 이 경우 Git LFS(Git Large File Storage)를 사용하라고 나와있습니다. 하지만 해당 파일이 OutOfMemoryError때문에 발생한다는 것만 알지 정확하게 무슨 내용을 포함하는지 몰라서 일단은 해당 파일의 히스토리를 모두 제거하기로 했습니다. filter-branch을 사용하여 해당 파일의 히스토리를 삭제할 수 있습니다. 저는 모든 hprof확장자의 파일을 삭제하려했기 때문에 아래와 같은 명령어를 통해서 해당 파일의 히스토리를 모두 삭제했습니다. git filter-branch ..

Git 2022.12.31

[Tomcat] Post요청시 컨트롤러에서 null이 찍힐 때

기본적으로 HTTP 메서드에서 Request Body의 용량은 무제한입니다. 하지만 공부 중 Post 요청으로 엄청 긴(많은) 데이터를 보낼 때 Request Body가 특정 길이 이상이면 null이 찍히는 현상이 발생했습니다. 찾아보니 Tomcat은 기본적으로 post로 전송하는 데이터의 크기와 파라미터 갯수를 제한하고 있습니다. 데이터 크기는 기본적으로 2MB(2097152B), 파라미터 갯수는 10,000개입니다. 이보다 많은 데이터를 보내려면 설정을 바꾸어주어야 합니다. 데이터 크기는maxPostSize, 파라미터 갯수는 maxParameterCount 속성으로 설정할 수 있습니다. 각각 무제한으로 설정하려면 0보다 작은 수를 입력하면 됩니다. Apache Tomcat 9 Configuration..

Spring 2022.12.26

[Effective Java] Item85. 자바 직렬화의 대안을 찾으라

직렬화는 위험합니다. 직렬화의 위험성을 회피하는 가장 좋은 방법은 역직렬화는 하지 않는 것입니다. 직렬화가 위험한 이유는 공격 범위가 너무 넓고 지속적으로 더 넓어져 방어하기가 어렵기 때문입니다. 직렬화를 완전히 배제할 수 없을 때의 차선책은 신뢰할 수 없는 데이터는 절대 역직렬화하지 않는 것입니다. 특히, 신뢰할 수 없는 발신원으로부터의 RMI는 절대 수용해서는 안됩니다. 만약, 직렬화를 피할 수 없고 역직렬화한 데이터가 안전하지 완전히 확신할 수 없는 경우 객체 역직렬화 필터링(java.io.ObjectInputFilter)를 사용합니다. 이는 자바9에 추가되었고, 이전 버전에서도 사용가능하도록 이식되었습니다. 객체 역직렬화 필터링 데이터 스트림이 역직렬화되기 전에 필터를 설치하는 기능입니다. 클래슷..

카테고리 없음 2022.10.02