HTTP와 HTTPS의 주된 차이점은 암호화
HTTPS는 대칭키 암호화와 비대칭키 암호화를 이용한다.
비대칭키 암호화공개키와 개인키를 암복호화에 이용함.
공개키로 암호화 후 개인키로 복호화, 개인키로 암호화, 공개키로 복호화
처음 연결 시 안전한 연결(세션키 공유)을 위해 비대칭키 암호화를 통해 세션키를 공유하게 된다.
이후 데이터 교환시에는 대칭키 암호화(처음 연결시 공유된 세션키 이용)를 이용해 연산속도를 빠르게 한다.
HTTPS의 연결과정
인증서를 브라우저에게 넘겨줌세션키를 발급함세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송함개인키로 암호화된 세션키를 복호화하여 세션키를 얻음세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함대표적인 비대칭키 암호화
Call StackCallback StackTask 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번 인덱스부터 순차적으로 들어감