본문 바로가기

전체 글

(97)
[HTTP] 캐시_304 Not Modified (Last-Modified& ETag) Last-Modified (if-modified-since) 캐시 만료후에도 서버에서 데이터를 변경하지 않음 그러면 데이터를 전송하는 대신에 브라우저에 저장해 두었던 캐시를 재사용할 수 있다. 단, 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 수 있는 방법이 필요. 검증 헤더 추가 1. 요청 > GET /star.jpg [헤더] HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=60 Last-Modified: 2022년 9월 3일 08:54:00 Content-Length: 34012 [HTTP BODY: ..........................] 2. 헤더 + 바디 크기로 하여 1.1M를 전송한다. (데이터 최종 수정..
[HTTP] 헤더_협상 콘텐츠 네고시에이션 > 클라이언트가 선호하는 표현 요청 Accept: 클라이언트가 선호하는 미디어 타입 전달 Accept-Charset: 클라이언트가 선호하는 문자 인코딩 Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 Accept-Language: 클라이언트가 선호하는 자연 언어 Accept-Language 적용전 1. 요청 > GET /event 2. 응답 > Content-Language: en / hello(영어) / 다중 언어 지원 서버 ( 1. 기본 영어(en) 2. 한국어 지원(ko) ) 적용후 1. 요청 > GET /event / Accept-Language: ko 2. 응답 > Content-Language: ko / 안녕하세요 / 다중 언어 지원 서버 (1. 기본 영어(..
[HTTP] 헤더_표현 Content-Type 표현 데이터의 형식 1) Multipart Related MIME 타입 - Content-Type: Multipart/related (기본형태) - Content-Type: Application/X-FixedRecord 2) XML Media의 타입 - Content-Type: text/xml - Content-Type: Application/xml - Content-Type: Application/xml-external-parsed-entity - Content-Type: Application/xml-dtd - Content-Type: Application/mathtml+xml - Content-Type: Application/xslt+xml 3) Application의 타입 -..
[HTTP] 상태코드 (2xx, 3xx, 4xx) 2XX (Successful) 200 OK 201 Created 요청 한 것을 서버에서 리소스를 생성한 것 ( 주로 post로 등록했을 때 ) 201이 응답이 오면 헤더에 Location 값이 있을 수 있겠구나를 생각할 수 있음 202 Accepted 접수는 되었지만 처리가 되지 않았을 때 배치 처리 같은 곳에서 사용 ex) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함 204 No Content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 ex) 웹 문서 편집기에서 save버튼 > 데이터가 post라 서버에 넘어갔지만 본문 응답을 받을 필요가 없음. save버튼의 결과로 아무 내용이 없어도 됨 3XX (Redirection) 요청을 완료하기 위해 유저 에이전..
[Spring DB] JDBC JDBC 등장배경 > 데이터베이스를 다른 종류의 데이터베이스로 변경하면 기존에 개발하던 데이터베이스 사용 코드도 변경된 데이터베이스 코드로 변경해야한다. > 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달, 그리고 그 결과를 응답 받는 방법을 새로 학습해야한다. JDBC란? Java Database Connectivity 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API [기능] 1. Connection 2. Statement 3. ResultSet JDBC드라이버 > 각각의 DB벤더에서 자신의 DB에 맞도록 구현해서 라이브러리를 제공 ex) MySQL DB에 접근할 수 있는 것은 MySQL JDBC드라이버, Oracle DB에 접근할 수 있는 것은 Oracle JDBC드라이버라 한다..
[Spring] 프록시 패턴, 데코레이션 패턴 프록시패턴 > 접근제어의 목적 데코레이션패턴 > 새로운 기능 추가가 목적 프록시 패턴 ex) real에 들어오기 전에 프록시 클래스에서 null이 아니면 바로 반환하는 걸로 real로의 접근을 제어할 수 있음 데코레이션패턴 ex) real로 들어오기 전, 1개 혹은 여러 개의 프록시 클래스를 거치면서 로그를 추가하거나 real로 들어오기 전까지 기능을 추가 할 수 있음 둘의 차이점 Intent >> 의도 접근제어의 목적인지, 추가 기능의 목적인지 구분.
[SpringBoot] 컴포넌트스캔 @SpringBootApplication(scanBasePackages = "hello.proxy.app") @SpringBootApplication 어노테이션은 컴포넌트 스캔을 하는 기능이 있다. 위치는 해당 어노테이션이 있는 파일의 위치와 그 하위 파일들이다. 그리고 @RequestMapping은 컴포넌트 스캔의 대상이 되지 않는다.
[도커] Volume