Spring/모든 개발자를 위한 HTTP 웹 기본 지식

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 08. HTTP 헤더2(캐시와 조건부 요청) - 검증 헤더와 조건부 요청1

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 2. 검증 헤더와 조건부 요청1 1. 캐시 시간 초과 캐시 만료 후 클라이언트가 서버에 다시 요청을 할 때, 2가지 상황이 존재한다. 1) 서버에서 기존 데이터를 변경한 경우 - 서버에서 변경된 데이터를 받음 2) 서버에서 기존 데이터를 변경하지 않은 경우 - 데이터를 전송하는 대신 저장해두었던 캐시를 재사용할 수 O - 단, 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 방법 필요 2-1. 검증 헤더 추가 - 첫번째 요청 1) Last-Modified(데이터가 마지막에 수정된 시간)을 설정해서 클라이언트에 데이터를 전송한다. 2) 클라이언트는 유효 시간과 데이터 최종 수정일을 함께 응답 결과를 캐시..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 08. HTTP 헤더2(캐시와 조건부 요청) - 캐시 기본 동작

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 1. 캐시 기본 동작 1. 캐시가 없을 때 1) 첫 번째 요청 브라우저에서 GET /star.jpg 첫번째 요청을 보내면, 서버는 HTTP 헤더(0.1M) + HTTP 바디=star.jpg 이미지(1.0M)를 담아 응답을 보낸다. 브라우저에 서버로부터 응답받은 이미지가 표시된다. 2) 두 번째 요청 브라우저에서 GET /star.jpg 두번째 요청을 보내면, 서버는 HTTP 헤더(0.1M) + HTTP 바디=star.jpg 이미지(1.0M)를 담아 응답을 보낸다. 브라우저에 서버로부터 응답받은 이미지가 표시된다. - 데이터가 변경되지 않아도 계속 네트워크를 통해 데이터를 다운로드 받아야 한다. - 인터넷 네트워크..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1(일반헤더) - 인증, 쿠키

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 7. 인증 인증 헤더 종류 설명 사용 헤더 사용 목적 Authorization 클라이언트 인증 정보 요청 인증 방식에 따라 값이 다양함 WWW-Authenticate 리소스 접근시 필요한 인증 방법 정의 응답 401(Unauthorized) 응답과 함께 사용 1. Authorization (요청) 클라이언트 인증 정보를 서버에 전달 - value 값은 인증 방식(OAuth)에 따라 다양함(필요하면 검색) 2. WWW-Authenticate (응답) 리소스 접근시 필요한 인증 방법 정의 - 401 Unauthorized 응답과 함께 사용 8. 쿠키 1) Set-Cookie: 서버->클라이언트 쿠키 전달(응답) 2)..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1(일반헤더) - 일반 정보, 특별한 정보

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 5. 일반 정보 일반 헤더 종류 내용 사용 헤더 사용 목적 기타 From 유저 에이전트의 이메일 정보 요청 검색 엔진 거의 사용X Referer 현재 요청된 페이지의 이전 웹페이지 주소 요청 유입 경로 분석 많이 사용 User-Agent 유저 에이전트(클라이언트) 애플리케이션 정보 요청 통계 정보, 장애가 발생하는 브라우저 파악 Server 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보 응답 실제 응답을 보낸 서버 파악 Date 메시지가 생성된 날짜 응답 1. From (요청) 유저 에이전트의 이메일 정보 - 일반적으로 잘 사용X - 검색 엔진같은 곳에서 주로 사용 2. Referer (요청) 현재 요청된 ..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1(일반헤더) - 전송 방식

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 4. 전송 방식 1. HTTP 메시지 전송 방식 1) 단순 전송 Content-Length 설정 - 데이터 전체를 한 번에 보낼 때 사용 2) 압축 전송 Content-Encoding 설정 - 전송해야하는 데이터가 커서 압축해서 보낼 때 사용(압축 방식은 다양함) 3) 분할 전송 Transfer-Encoding:chunked 설정, Content-Length 설정X - 대용량 데이터를 클라이언트에 보낼 때, 요청이 모두 처리되기 전까지 총 크기를 알 수 없을 때 사용 - r\n\ : 분할 전송의 끝을 나타냄 4) 범위 전송 Range 설정해서 요청 -> Content-Range 설정해서 응답 - 어떠한 이유로 중..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1(일반헤더) - 콘텐츠 협상

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 3. 콘텐츠 협상 1. 콘텐츠 협상(Contents Negotiation) 클라이언트가 선호하는 표현 요청 - 협상 헤더는 요청시에만 사용 - 클라이언트 별로 선호하는 표현을 서버에서 처리해서 줄 수 있음 1) Accept: 클라이언트가 선호하는 미디어 타입 전달 2) Accept-Charset: 클라이언트가 선호하는 문자 인코딩 3) Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 4) Accept-Language: 클라이언트가 선호하는 자연 언어 2. Accept-Language 1) Accept-Language 적용 전 한국어 브라우저로 외국에 있는 /event 에 접속 요청을 보내면, 서버..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1(일반헤더) - HTTP 헤더 개요, 표현

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 1. HTTP 헤더 개요 1. HTTP 헤더 1) 헤더 용도 - HTTP 전송에 필요한 모든 부가 정보 e.g. 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 - 표준 헤더가 너무 많음, 필요시 임의의 헤더 추가 가능 2) 헤더 분류-RFC 2616(과거) 1) General 헤더: 요청/응답 메시지 전체에 적용되는 정보 (e.g. Connection: close) 2) Request 헤더: 요청 정보 (e.g. User-Agent: Mozilla/5.0) 3) Response 헤더: 응답 정보 (e.g. Server: Apache) 4) Entity ..

Spring/모든 개발자를 위한 HTTP 웹 기본 지식

[모든 개발자를 위한 HTTP 웹 기본 지식] 06. HTTP 상태코드 - 4xx(클라이언트 오류), 5xx(서버 오류)

(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 5. 4xx(클라이언트 오류), 5xx(서버 오류) 상태코드 원인 클라이언트 오류 400 요청 구문, 메시지 오류(요청 파라미터 잘못됨, API 스펙이 맞지 않을 때) 401 인증이 되지않은 경우 403 인증은 됐지만 접근권한이 불충분한 경우 404 요청 리소스가 서버에 없는 경우 서버 오류 500 서버 문제(NullPointerException, DB 접근 불가) 애매하면 사용 503 일시적 과부하/예정 작업(서비스 이용 불가) 1. 4xx (Client Error) 클라이언트 오류 - 오류의 원인 = 클라이언트 (e.g. 클라이언트 요청에 잘못된 문법) (중요!) 클라이언트가 이미 잘못된 요청, 데이터를 보내..

HSY_mumu
'Spring/모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 글 목록