웹 브라우저가 이해할 수 있도록 작성된 언어로서, 다른 위치나 페이지로 이동할 수 있게 만들어진 하이퍼텍스트를 마크업 하여, 데이터를 어디에 어떻게 표현할지 구조를 만들어내는 마크업 언어.
사용자에게 문서를 표시하는 방법을 지정하는 언어.
객체(Object) 기반의 스크립트 프로그래밍 언어로, 웹페이지에 생동감을 불어넣기 위해 만들어졌다.
[구조] HTML : 웹 문서의 기본적인 골격을 담당.
[표현] CSS : 각 요소들의 레이아웃, 스타일링을 담당.
[동작] JavaScript : 동적인 요소(사용자와의 인터렉션)을 담당.
!important
> 인라인 > 내부 > 외부 > 웹 브라우저 기본값 순서로 우선 적용된다.
1. !important
2. 인라인 스타일
3. 내부 스타일(선택자)
4. 외부 스타일(import)
5. 웹 브라우저 기본값
※ 명시도 : 적용 범위가 좁아서 명확하게 정해진 것.
DOM트리 구축 → CSSOM 트리 구축 → JS 실행 → 렌더 트리 구축 → 렌더 트리의 위치 크기 계산 → 화면에 그리기
1. HTML 파싱 후, DOM 트리를 구축한다.
2. CSS 파싱 후, CSSOM 트리를 구축한다.
3. JS를 실행한다.
4. DOM 트리와 CSSOM 트리를 조합하여, 렌더 트리를 구축한다.
5. 뷰포트를 기준으로 렌더 트리의 각 노드가 가지는 정확한 위치와 크기를 계산한다.
6. 계산한 위치, 크기를 기반으로 화면에 그린다.
※ 3에서 HTML 중간에 스크립트가 있다면 HTML 파싱이 중지된다.
※ 4에서 display: none;
속성과 같이 화면에 안 보이고 공간 차지가 없는 것은 렌더 트리로 구축되지 않는다.
클라이언트 상에서 key/value 쌍을 저장할 수 있는 메커니즘으로 value는 반드시 문자열이어야 한다.
※ 출처(Origin) : URL 체계(http, https), 호스트(naver.com), 포트(5000, 80) 등.
일정 시간 또는 영구적으로 값을 저장하고 싶은 경우 사용할 수 있는 Web Storage.
현재 브라우저 내에서만 유지하고 싶은 경우 사용할 수 있는 Web Storage.
웹사이트 접속 시 그 사이트가 사용하는 서버를 통해 로컬에 저장되는 작은 데이터 파일.
Local Storage | Session Storage | Cookie | |
---|---|---|---|
생성자 | 클라이언트 | 클라이언트 | 클라이언트/서버 |
지속 시간(만료일) | 명시적으로 지울때까지 | 탭/윈도우 닫을 때까지 | 설정 여부에 따름 |
용량 | 5MB, 10MB | 5MB | 4KB |
서버와의 통신 | 통신하지 않음 | 통신하지 않음 | 통신함 |
취약점 | XSS 공격 | XSS 공격 | XSS, CSRF 공격 |
프로그램에서 더 이상 사용되지 않는 메모리를 자동으로 정리하는 것.
...