728x90
반응형

분류 전체보기 81

검증 헤더와 조건부 요청2

Intro 본 포스팅에서는 검증 헤더와 조건부 요청에 대해 다룬다. 검증 헤더와 조건부 요청이란? 검증 헤더 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터 Last-Modified , ETag 조건부 요청 헤더 검증 헤더로 조건에 따른 분기 If-Modified-Since: Last-Modified 사용 If-None-Match: ETag 사용 조건이 만족하면 200 OK 조건이 만족하지 않으면 304 Not Modified 예시 If-Modified-Since: 이후에 데이터가 수정되었으면? 데이터 미변경 예시 캐시: 2020년 11월 10일 10:00:00 vs 서버: 2020년 11월 10일 10:00:00 304 Not Modified, 헤더 데이터만 전송(BODY 미포함) 전송 용량 0.1..

CS/Network 2023.10.07

검증 헤더와 조건부 요청1

Intro 본 포스팅에서는 검증 헤더와 조건부 요청에 대해 다룬다. 캐시 시간 초과 캐시 유효 시간이 초과해서 서버에 다시 리소스를 요청하면 다음 두 가지 상황이 나타난다. 서버에서 기존 데이터를 변경하지 않은 경우 서버에서 기존 데이터를 변경한 경우 서버에서 데이터를 변경하지 않은 경우 그렇다면, 데이터를 전송해서 새로 받는 대신에 저장해 두었던 캐시를 재사용 할 수 있다. 단, 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 수 있는 식별자가 필요할 것이다. 첫 번째 요청 첫 번째 요청을 받은 서버는 클라이언트에게 리소스를 보낸다. 이 때, Last-Modified라는 필드에 날짜 값을 넣어서 보내게 된다. 이 값을 통해 해당 리소스의 최종 수정일을 알 수 있다. 웹 브라우저는 수신한 리소..

CS/Network 2023.10.07

캐시 기본 동작

Intro 본 포스팅에서는 캐시 기본 동작에 대해 다룬다. 캐시의 필요성 클라이언트는 웹 서버에 다양한 리소스를 요청하고, 이를 요청하는 클라이언트는 다수이다. 이 때 캐시가 있는 상황과 없는 상황을 가정하고 캐시가 필요한 이유에 대해 학습할 수 있다. 캐시가 없을 때 첫 번째 요청 캐시가 없는 상황에서, 클라이언트가 star.jpg라는 이미지 파일을 서버에 요청해서 받아오는 상황이다. 서버가 클라이언트로부터 GET요청을 받고 이미지 리소스를 돌려주는데 이 때 데이터의 크기는 1.1M로, 헤더 0.1M과 이미지 파일 본체인 바디는 1.0M로 이루어져있다. 두 번째 요청 클라이언트로부터 몇번의 요청이 오든 서버에서는 같은 1.1M 크기의 파일을 전송한다. 데이터가 변경되지 않아도 계속 네트워크를 통해 데이..

CS/Network 2023.10.07

인증과 쿠키

Intro 본 포스팅에서는 인증(Authorization)과 쿠키(cookie)에 대해 다룬다. 인증이란? Authorization: 클라이언트 인증 정보를 서버에 전달하는 것이다. WWW-Authenticate: 리소스 접근시 필요한 인증 방법을 정의한다. Authorization 클라이언트측에서 클라이언트 인증 정보를 서버에 전달한다. 요청시 사용한다. Auth 등 다양한 인증 방식마다 value에 들어가는 값은 상이하다. WWW-Authenticate 서버측에서 리소스 접근시 필요한 인증 방법을 정의한다. 401 Unauthorized 응답시 함께 사용한다. WWW-Authenticate: Newauth realm="apps", type=1, title="Login to \"apps\"", Basi..

CS/Network 2023.10.05

일반 정보, 특별한 정보

Intro 본 포스팅에서는 HTTP의 일반 정보, 특별한 정보에 대해 다룬다. 일반 정보 일반적인 정보를 담은 헤더 필드들이다. From: 유저 에이전트의 이메일 정보 Referer: 이전 웹 페이지 주소 User-Agent: 유저 에이전트 애플리케이션 정보 Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보 Date: 메시지가 생성된 날짜 From 유저 에이전트의 이메일 정보이다. 일반적으로 잘 사용되지 않는다. 검색 엔진 등에서 주로 사용된다. 요청에서 사용한다. Referer 이전 웹 페이지의 주소이다. 현재 요청된 페이지의 이전 웹 페이지 주소 A -> B로 이동하는 경우 B를 요청할 때 Referer: A 를 포함해서 요청 Referer를 사용해서 유입 경로 분석 가능 요청에서 사용 참..

CS/Network 2023.10.04

HTTP 전송 방식

Intro 본 포스팅에서는 HTTP의 전송 방식에 대해 다룬다. 전송 방식 HTTP 전송 시에는 다양한 전송 방식이 존재한다. 단순 전송 압축 전송 분할 전송 범위 전송 단순 전송 Content-Length로 길이를 명시하고, 단순히 전송한다. 압축 전송 Content-Encoding으로 압축 타입을 명시하고, 본문에는 압축된 데이터를 보낸다. 분할 전송 Transfer-Encoding필드에 chunked 값을 주고, 데이터를 분할하여 보낸다. 용량이 매우 큰 데이터를 보낼 때 사용한다. 총 크기를 예측할 수 없기에 Content-Length를 사용해선 안 된다. 범위 전송 범위를 지정해서 요청에 대한 응답을 받는 전송 방법이다. 데이터를 보내다가 모종의 이유로 중간에 끊겼을 경우, 처음부터 다시 받을 ..

CS/Network 2023.10.04

표현(Representation)과 협상(Negotiation)

Intro 본 포스팅에서는 표현(Representation)과 협상(Negotiation)에 대해 다룬다. 표현 즉, 표현 헤더는 다양한 http header로 이루어져 있는데 이는 header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용) 위와 같은 형태를 띄고, 표현 헤더는 하단의 표현 데이터(==메시지 본문, 바디, 본문)를 해석할 수 있는 대표 정보라고 해석할 수 있다. 표현 헤더의 구조 Content-Type : 표현 데이터의 형식 Content-Encoding: 표현 데이터의 압축 방식 Content-Language: 표현 데이터의 자연 언어 Content-Length: 표현 데이터의 길이 표현 헤더는 HTTP 요청, 응답 둘다 사용 Co..

CS/Network 2023.10.04

HTTP Header 개요

Intro 본 포스팅에서는 HTTP header의 개요에 대해 다룬다. HTTP Header란 header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용) 위와 같은 형식으로 구성되어 있으며, field-name에는 대소문자 구분을 하지 않는다. HTTP Header의 용도 HTTP 전송에 필요한 모든 부가정보 (start-line에서 명시된 정보를 제외하고) 메시지 바디의 내용, 메시지 바디의 크기, 압축 타입, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 ... 표준 헤더는 엄청 많다. ref : https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 필요시 임의의 헤더를 추가할 수 있다. H..

CS/Network 2023.10.04

메시지 인증 코드(MAC)

메시지 인증 코드(MAC) (Review) Modification Detection Code MDC Message의 무결성을 확인할 수 있는 방법론이다. How? Alice가 secure channel을 구축하고 있다는 가정하에 원본은 unsecure channel로 전송 MDC는 secure channel로 전송 Bob이 MDC값 두 개를 비교하여 무결성 체크 MDC의 한계 MDC는 non-practical하다. secure channel을 구현하는 것은 상대적으로 어려움 매번 secure channel을 구현해야하는 overhead 발생 Message Authentication Code (MAC) MAC? (e.g., Hash with key $H(K,M)$) 송/수신자가 공유한 key를 이용하여 m..

Security 2023.10.03

대칭키 암호 시스템의 운영모드

대칭키 암호 시스템의 운영모드 운영모드와 패딩 운영모드 DES나 AES와 같은 블록 암호를 사용하여 다양한 크기의 데이터를 암호화하는 방식이다. 실제로 사용되는 평문은 다양한 크기를 가지며 보통 블록크기보다 훨씬 큼 Electronic Codebook Mode (ECB) : 책에서만 배우고 안전하지 않음 Cipher Block Chaining (CBC) : 파일 암호화 Counter (CTR) : 네트워크 패킷 암호화 Cipher Feedback (CFB) → 수업에서 다루지 않음 Output Feedback (OFB) → 수업에서 다루지 않음 블록 암호의 경우, 평문의 길이가 정확하게 해당 블록 암호의 블록 크기의 배수가 되어야 함 패딩은 평문의 전체가 블록 크기의 배수가 되도록 마지막 부분의 빈 공간..

Security 2023.10.03
728x90
반응형