fragile and resilient

CS 5

[Network] HTTPS 동작원리

대칭키와 공개키 비교대칭키 암호법암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 같다.발송자와 수신자 모두 통신을 위해 비밀 키를 똑같이 공유한다.공개키 암호법두 개의 비대칭 키를 사용한다.하나는 호스트의 메시지를 암호화하기 위한 것이며, 다른 하나는 그 호스트의 메시지를 복호화 하기 위한 것이다.암호화 키는 모두에게 공개되어 있지만, 개인 복호화 키는 호스트만이 알고 있다.혼성 암호 체계공개키 암호 방식은 공개키를 알면 그 키에 대응되는 공개 서버에 안전하게 메시지를 보낼 수 있게 해준다.그러나 공개키 암호 방식의 알고리즘은 계산이 느린 경향이 있다.따라서 실제로는 대칭과 비대칭 방식을 섞어서 쓴다.노드들 사이의 안전한 의사소통 채널을 수립할 때는 공개키 암호화 방식을 사용하고, 이렇게 만들어진 ..

CS 2022.07.30

[Network, Spring] CORS Error 왜 발생했을까?

문제 상황프론트엔드와 협업하는 프로젝트를 진행하면서 문제를 겪었습니다.인수 테스트와 Postman으로 테스트했을 때는 문제가 없었는데, 브라우저와 연결하니 에러가 떴습니다.에러 문구 중 해당 부분이 눈에 들어왔습니다.has been blocked by CORS policy그럼 CORS에 대해 알아보기 전에, origin에 대해 먼저 알아보겠습니다.출처(origin)origin은 protocol, domain, port에 의해 정의됩니다.따라서 protocol, domain, port가 모두 일치하는 경우를 같은 출처라고 하고, 이 중 하나라도 다를 경우 교차 출처(cross-origin)라 합니다.http://example.com:80여기서 http://를 protocol, example을 domain,..

CS 2022.06.19

[Network] HTTP 메시지

HTTP 메시지 구조메시지 헤더서버와 클라이언트가 처리해야 하는 request와 response 내용과 속성개행 문자(CR + LF)CR(cattiage return) + LF(line feed)메시지 바디꼭 전송되는 데이터 그 자체ex) HTTP 메시지인코딩 - 전송 효율 상승메시지 바디와 엔티티 바디 차이메시지HTTP 통신의 기본 단위로 Octet sequence로 구성되고 통신을 통해서 전송엔티티리퀘스트랑 리스폰스의 payload로 전송되는 정보로 엔티티 헤더 필드와 엔티티 바디로 구성콘텐츠 코딩엔티티 정보를 유지한채로 압축 → 콘텐츠 코딩된 엔티티는 수신한 클라이언트에서 디코딩한다.주요 콘텐츠 압축 - gzip, compress, deflate, identity청크 전송 코딩사이즈가 큰 데이터를 ..

CS 2022.05.15

[Network] 프로토콜 HTTP

책: 그림으로 배우는 Http & Network Basic - 2장 간단한 프로토콜 HTTPHTTP 프로토콜프로토콜이란? 서로 다른 하드웨어와 운영체제가 통신하기 위한 규칙반드시 한 쪽은 클라이언트, 한 쪽은 서버HTTP는 클라이언트로부터 Request 송신, 그 결과 서버가 Response 반환클라이언트로부터 통신이 시작서버 측에서 Request를 수신하지 않았는데, Response가 발생하는 경우는 없다.HTTP 메시지란?서버와 클라이언트 간에 데이터가 교환되는 방식Request Message 1) start line1.1) HTTP 메소드 (GET, POST 등)서버가 수행해야 할 동작 명시1.2) URL1.3) HTTP 버전 2) Headers2.1) Host: 서버 도메인 명과 TCP 포트2.2..

CS 2022.05.09

[OS] CPU Scheduling

CPU 스케줄링이란 쉽게 말해, 어떤 프로세스가 CPU를 할당받을 것인지의 순서를 정하는 과정이다. 1. Preemptive Scheduling (선점형 스케줄링)어떤 프로세스가 CPU를 할당받아 실행중이더라도 OS가 CPU를 강제로 뺏을 수 있는 (해당 프로세스를 쫓아낼 수 있는) 스케줄링 방식2. Non-preemptive Scheduling (비선점형 스케줄링)어떤 프로세스가 CPU를 점유하면 다른 프로세스가 빼앗을 수 없는 스케줄링 방식(자발적으로 빠져나오는 것만 가능)Decision making for cpu-schedulingrunning state ➔ waiting state (ex. I/O 요청)running state ➔ ready state (ex. interrupt)waitting s..

CS 2021.01.31