HTTP와 HTTPS의 주된 차이점은 암호화
HTTPS는 대칭키 암호화와 비대칭키 암호화를 이용한다.
비대칭키 암호화
공개키와 개인키를 암복호화에 이용함.
공개키로 암호화 후 개인키로 복호화, 개인키로 암호화, 공개키로 복호화
처음 연결 시 안전한 연결(세션키 공유)을 위해 비대칭키 암호화를 통해 세션키를 공유하게 된다.
이후 데이터 교환시에는 대칭키 암호화(처음 연결시 공유된 세션키 이용)를 이용해 연산속도를 빠르게 한다.
HTTPS의 연결과정
인증서
를 브라우저에게 넘겨줌세션키
를 발급함세션키
를 보관하며 추가로 서버의 공개키
로 세션키
를 암호화하여 서버로 전송함개인키
로 암호화된 세션키
를 복호화하여 세션키
를 얻음세션키
를 공유하므로 데이터를 전달할 때 세션키
로 암호화/복호화를 진행함대표적인 비대칭키 암호화
Call Stack
Callback Stack
Task Queue
(Macrotask Queue) (ex. setTimeout
, setInterval
, fetch
...)Microtask Queue
(ex. Promise
)AnimationFrame Queue
(브라우저 렌더링 관련 task)이벤트루프 처리 우선순위
- Call Stack
- Microtask Queue
- AnimationFrame Queue
- Task Queue
async / await에서
async
함수의await
키워드 아래는 실행이 미뤄진다(Microtask Queue
로 넘겨진다)
indexedDB란? 새로운 웹 브라우저의 표준 인터페이스
IndexedDB
많은 데이터를 저장하기 하고, 이를 Index
를 이용하여, 빠르게 검색할 수 있게 설계 되었다.
Storage 인 Local Storage
와 Session Storage
는 최대 10MB 만 저장이 가능하며, 오직 String
형태만 저장이 가능하다.
IndexedDB
는 javascript 가 이해하는 어떠한 값
이라도 모두 저장할 수 있다.
IndexedDB
는 용량 제한은 특별히 없으나, HDD 저장소 상태 나 브라우저의 상태에 따라서 달라 질 수 있다.
작은 규모의 데이터는 Storage
를 사용하는것이 좋지만, 큰 데이터는 IndexedDB
를 사용하는 것이 여러모로 유리하다.
자바스크립트 모듈은 최상위에 변수를 선언하면 전역스코프가 아닌 모듈스코프를 가진다
자바스크립트 정규표현식의 캡쳐는 match 반환값에서 1번 인덱스부터 순차적으로 들어감