스프링/HTTP 기본 지식
-
HTTP(7) - HTTP 헤더 (캐시 제어 헤더, 프록시 캐시, 캐시 무효화)스프링/HTTP 기본 지식 2023. 2. 7. 14:16
캐시 제어 헤더 1. Cache-Control : 캐시 제어 2. Pragma : 캐시 제어(하위 호환) 3. Expires : 캐시 유효 기간(하위 호환) 1. Cache-Control Cache-Control: max-age - 캐시 유효시간, 초 단위 Cache-Control: no-cache - 데이터는 캐시해도 되지만, 항상 원 서버에 검증하고 사용 (if-none-modified 등을 통해 항상 검증을 먼저 해야함) Cache-Control: no-store - 데이터에 민감함 정보가 있으므로 저장하면 안됨 (메모리에서 사용하고 최대한 빨리 삭제) 2. Pragma Pragma: no-cache처럼 사용하는데 거의 사용하지 않음 3. Expires expires: Mon, 01 Jan 1990..
-
HTTP(7) - HTTP 헤더 (캐시 검증헤더와 조건부 요청)스프링/HTTP 기본 지식 2023. 2. 7. 13:45
캐시 기본 동작 웹 사이트에서 사진을 요청한다고 가정하면 헤더와 바디 부분을 서버가 만들어서 클라이언트에 보내줄 것이다. 캐시가 없을 때 웹 사이트를 들어가면 같은 용량의 사진 파일을 똑같이 보내줘야 한다. 캐시가 없으면 - 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. - 인터넷 네트워크는 매우 느리고 비싸다. 캐시 적용 첫 번째 요청 HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=60 // 캐시가 유효한 시간 Content-Length: 34012 60초 동안은 브라우저 캐시에 정보를 저장 두 번째 요청 서버 네트워크를 탈 필요 없이 캐시에 저장되어 있으면 캐시에서 꺼내서 확인하게 됨 세 번째 요청 ..
-
HTTP(6) - HTTP 헤더 (정보 및 쿠키)스프링/HTTP 기본 지식 2023. 2. 7. 13:11
일반 정보 1. From : 유저 에이전트의 이메일 정보 2. Referer : 이전 웹 페이지 주소 3. User-Agent : 유저 에이전트 애플리케이션 정보 4. Server : 요청을 처리하는 origin 서버의 소프트웨어 정보 5. Date : 메시지가 생성된 날짜 1. From - 검색 엔진 같은 곳에서 사용 - 하지만 잘 사용되지 않음 2. Referer - 현재 요청된 페이지 이전 웹 페이지 주소 - 웹 사이트에서 뒤로가기 버튼을 사용할 때 뒤로가지는 그런 기능을 작동함 - A에서 B로 이동하는 경우 B를 요청할 때 Referer : A를 포함해서 요청 - Referer를 사용해서 유입 경로 분석 가능 (데이터 분석할 때 내 웹사이트를 어느 경로로 들어왔지?? 등으로 사용) - 많이 사용됨..
-
HTTP(5) - HTTP 헤더 (표현헤더, 협상, 전송 방식)스프링/HTTP 기본 지식 2023. 2. 7. 12:36
헤더 분류 General 헤더 : 메시지 전체에 적용되는 정보, 예) Connection: close Request 헤더 : 요청 정보, 예) User-Agent: Mozilla/5.0 (Macintosh; ..) Response 헤더 : 응답 정보, 예) Server: aPACHE Entity 헤더 : 엔티티 바디 정보, 예) Content-Type: text/html, Content-Length: 3423 HTTP BODY 메시지 본문은 엔티티 본문을 전달하는데 사용 - 엔티티 본문은 요청이나 응답을 전달할 실제 데이터 표현 헤더 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 표현 데이터 ... 표현 헤더는 표현 ..
-
HTTP(4) - HTTP 상태코드스프링/HTTP 기본 지식 2023. 2. 6. 21:25
HTTP 상태 코드 1xx : 요청이 수신되어 처리 중 2xx : 요청 정상 처리 3xx : 요청을 완료하려면 추가 행동이 필요 4xx : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 (클라이언트 에러) 5xx : 서버 오류, 서버가 정상 요청을 처리하지 못함 (서버 에러) 각각의 특징 1. 1xx : 요청이 수신되어 처리 중 - 거의 사용하지않음 2. 2xx : 클라이언트의 요청을 성공적ㅇ로 처리 200 OK - 요청 성공 201 Created - 요청 성공해서 새로운 리소스가 생성됨 202 Accepted - 요청이 접수되었으나 처리가 완료되지 않았음 204 No Content - 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 200이랑 201을 ..
-
HTTP(3) - API 설계 예스프링/HTTP 기본 지식 2023. 2. 5. 15:51
HTTP API 파일 목록 /files -> GET 파일 조회 /files/{filename} -> GET 파일 등록 /files/{filename} -> PUT 파일 삭제 /files/{filename} -> DELETE 파일 대량 등록 /files -> POST 회원 관리 시스템 1. POST - 신규 자원 등록 특징 (컬렉션) - 클라이언트는 등록될 리소스의 URI를 모른다 - POST는 기존에 없던 리소스를 새로 만드는 기능이기 때문에 서버가 새로 등록된 리소스 URI를 생성해준다. HTTP/1.1 201 Created Location: /members/ 100 2. PUT - 신규 자원 등록 특징 (스토어) - 클라이언트가 리소스 URI를 알고 있어야 한다. 파일 등록 /files/{filena..
-
HTTP(1) - HTTP 메서드스프링/HTTP 기본 지식 2023. 2. 5. 15:05
Http는 웹 개발에 있어서 개발자 모두가 필수적으로 알아야하는 기본 지식이다. Http 메서드 중에서 중요한 메서드들 정리 1. Get 메서드 정보를 조회할 때 사용 2. Post 메서드 회원가입, 게시글 작성 등 새로운 정보를 입력, 저장할 때 사용 3. Put 메서드 리소스를 대체, 기존에 리소스가 있으면 대체하고 리소스가 없었으면 새로 생성(리소스를 덮어버림) Post와의 다른점은 Put 메서드는 정확한 리소스를 알고 사용한다는 것. 4. Patch 메서드 리소스의 부분을 변경해준다. Put메서드와 Patch 메서드의 차이점 PUT /members/100 HTTP/1.1 Content-Type: application/json { "name" : abc "age" : 20 } 위의 리소스를 PUT ..