분류 전체보기 1341

Ch08. HTTP 헤더(캐시와 조건부 요청) - 캐시 기본 동작

캐시가 없을 때 첫 번째 요청 두 번째 요청 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드하여야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 첫번째 요청 두 번째 요청 캐시 덕분에 캐시 가능 시간 동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 세번째 요청 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다.

Ch07. HTTP 헤더(일반 헤더) - 인증 & 쿠키

인증 Authorization: 클라이언트 인증 정보를 서버에 전달 WWW-Authenticate: 리소스 접근 시 필요한 인증 방법 정의 Authorization: Basic xxxxxxxxxxxxxxxx WWW-Authenticate 리소스 접근 시 필요한 인증 방법 정의 리소스 접근시 필요한 인증 방법 정의 401 Unauthorized 응답과 함께 사용 WWW-Authenticate: Newauth realm="apps", type=1, title="Login to \"apps\"", Basic realm="simple" 쿠키 Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달 쿠키 미사용 로그인 된..

Ch07. HTTP 헤더(일반 헤더) - 특별한 정보

Host: 요청한 호스트 정보(도메인) 요청에서 사용 필수 하나의 서버가 여러 도메인을 처리해야 할 때 하나의 IP 주소에 여러 도메인이 적용되어 있을 때 Location : 페이지 리다이렉션 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) 응답 코드 3xx에서 설명 201 (Created): Location 값은 요청에 의해 생성된 리소스 URI 3xx (Redirection): Location 값은 요청을 자동으로 리디렉션 하기 위한 대상 리소스를 가리킴 Allow : 허용 가능한 HTTP 메서드 405 (Method Not Allowed) 에서 응답에 포함해야 함 Allow: GET, HEAD, PUT Retry-After : 유저..

Ch07. HTTP 헤더(일반 헤더) - 일반정보

From: 유저 에이전트의 이메일 정보 일반적으로 잘 사용되지 않음 검색 엔진 같은 곳에서, 주로 사용 요청에서 사용 Referer: 이전 웹 페이지 주소 현재 요청된 페이지의 이전 웹 페이지 주소 A -> B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청 Referer를 사용해서 유입 경로 분석 가능 요청에서 사용 참고: referer는 단어 referrer의 오타 User-Agent: 유저 에이전트 애플리케이션 정보 user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/ 537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 클리이언트의 애플리케이션 ..

Ch07. HTTP 헤더(일반 헤더) - 전송 방식

단순 전송 한 번에 요청하고 쭉 받는다. 압축 전송 데이터를 압축해서 전송한다. Content-Encoding과 같이 어떤 타입으로 압축했는지 필요 분할 전송 분할 해서 데이터를 받을 수 있다. 마지막은 0 \r\n을 받아 데이터를 마지막을 표기 가능 Content-length를 보내면 안 된다( 분할 데이터마다 길이가 다 있기 때문) 범위 전송 범위를 지정해서 전송할 수 있다 중간에 오류가 발생하거나 해서, 일정 범위까지 받았을 경우 처음부터가 아니라 받은 범위 이후부터 받을 때 사용

Ch07. HTTP 헤더(일반 헤더) - 콘텐츠 협상

클라이언트가 선호하는 표현 요청 Accept: 클라이언트가 선호하는 미디어 타입 전달 Accept-Charset: 클라이언트가 선호하는 문자 인코딩 Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 Accept-Language: 클라이언트가 선호하는 자연 언어 협상 헤더는 요청 시에만 사용 Accept-Language 적용 전 Accept-Language 적용 후 복잡한 Accept-Language 협상과 우선순위1 Quality Values(q) 값 사용 0~1, 클수록 높은 우선순위 생략하면 1 Accept-Language: ko-KR, ko;q=0.9, en-US;q=0.8, en;q=0.7 ko-KR;q=1 (q생략) ko;q=0.9 en-US;q=0.8 en:q=0.7 협상과 우선..

Ch07. HTTP 헤더(일반 헤더) - 표현

리소스를 어떤 형식으로 표현할지를 알려주기 위한 부분 EX) 리소스를 JSON으로 표현 할 수도 있고, HTML로 표현할 수도 있다. Content-Type: 표현 데이터의 형식 Content-Encoding: 표현 데이터의 압축 방식 Content-Language: 표현 데이터의 자연 언어 Content-Length: 표현 데이터의 길이 참고 : 표현 헤더는 전송, 응답 둘다 사용 Content-Type : 표현 데이터의 형식 미디어 타입, 문자 인코딩 Example) text/html; charset=utf-8 application/json image/png Content-Encoding : 표현 데이터 인코딩 표현 데이터를 압축하기 위해 사용 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가 데이..

Ch06. HTTP 상태코드 - 4xx(클라이언트 오류, 5xx - 서버 오류)

4xx (Client Error) 클라이언트 오류 클라이언트의 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 오류의 원인이 클라이언트에 있음 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 요청 구문, 메시지 등등 오류 클라이언트는 요청 내용을 다시 검토하고, 보내야 함 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때 401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요함 인증(Authentication) 되지 않음 401 오류 발생 시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명 참고 인증(Authe..

Ch06. HTTP 상태코드 - 3xx(리다이렉션)

요청을 완료하기 위해 유저 에이전트의 추가 조치 필요 리다이렉션 이해 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) 이전에 사용하던 event는 더 이상 사용하지 않기 때문에 해당 URL로 접근하면 301 상태 코드와 새로운 Event를 동작시켜주는 곳으로 이동시켜준다 종류 영구 리다이렉션 - 특정 리소스의 URI가 영구적으로 이동 예) /members -> /users 예) /event -> /new-event 일시 리다이렉션 - 일시적인 변경 주문 완료 후 주문 내역 화면으로 이동 PRG: Post/Redirect/Get 특수 리다이렉션 결과 대신 캐시를 사용 영구 리다이렉션(301, 308) 리소스의 URI가 영구적으로 이동 원래..

Ch06. HTTP 상태코드 - 2xx(성공)

클라이언트의 요청을 성공적으로 처리 200 OK 요청 성공 201 Created 요청 성공해서 새로운 리소스가 생성됨 생성된 Location 헤더 필드로 식별한다. 202 Accepted 요청이 접수되었으나 처리가 완료되지 않았음 배치 처리 같은 곳에서 사용 예) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함 204 No Content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 예) 웹 문서 편집기에서 save 버튼 save 버튼의 결과로 아무 내용이 없어도 된다. save 버튼을 눌러도 같은 화면을 유지해야 한다. 결과 내용이 없어도 204 메시지(2xx)만으로 성공을 인식할 수 있다