HTML은 HyperText Markup Language 의 줄임말로, 브라우저가 읽을수 있는 XML 형태의 마크업 언어를 말한다. 기본적인 웹문서의 틀을 구성하고 있다.
CSS는 Cascade Style Sheet의 줄임말로, HTML 언어를 구성하고있는 각 틀마다 색깔, 위치, 너비 등을 조정해주는 역할. Grid
, Flex
등을 이용해 레이아웃 구성을 할수 있고, media Query를 이용하여, 반응형 처리 웹 페이지 처리도 가능하다.
Javascript은 마크업의 이벤트 제어와 비동기제어를 통한 외부 통신같은 역할을 한다. jQuery
나 React
등의 라이브러리를 이용하여, 이벤트 제어, 마크업 동적 생성 및 제거등의 기능을 간편하게 이용할 수 있다.
브라우저는 해당 도메인에 맞은 IP가 있는지 확인하기 위해 DNS 서버에 요청. 이전에 캐싱된 기록이 있다면 요청없이 해당 IP를 받아옴. 만약에 캐싱된 기록이 없다면, 가까운 DNS서버부터 시작해서 원하는 IP주소를 찾을때까지 DNS서버 탐색을 계속한다.
브라우저는 TCP/IP 프로토콜을 이용 URL 정보와 함께 서버에서 리소스를 요청한다. 이때, TCP는 3 way handshake
과정을 통해 연결 및 데이터를 수신받고 ,4 way handshake
를 통해 연결을 종료한다.
WAS 미들웨어(ex.tomcat
)을 이용하여 동적인 콘텐츠를 제공하는 파일 처리와 DataBase 연동 요청 처리를 한다.
WAS에서 작업한 결과와 웹 서버에 저장된 파일들을 상태코드 값과 함께 브라우저에게 돌려준다.
Single Page Application의 줄임말로, 단일 페이지에서 데이터 변경만으로 페이지 처리를 하는 방식.
기본적으로, 스크립트 파일을 한번만 받고, 페이지 이동(a
링크 클릭)시 새로고침 이동이 아닌 링크와 관련해서 필요한 데이터만 받아서 깜빡임 없이 변경된 곳만 새로 그림.
장점
단점
key:value
형태로 저장되는데 value는 무조건 문자열 형태로 들어감. Set-Cookie
에 쿠키값을 저장. 이후 브라우져는 서버와 통신할때 항상 쿠키값을 가지고 있게됨. key=value
형태로 저장되며 &
구분자로 이어서 저장이 가능. expired
와 max-age
를 통해 유효일자와 유효시간 지정이 가능하며, 만약에 지정하지않을때는 세션처럼 브라우져 종료시 사라진다.Cross Origin Resource Sharing의 줄임말로 해석하자면 교차출처(다른 도메인) 리소스 공유이다.
예를 들어 A.com에서 image.png를 요청할때, 요청하고자하는 서버의 도메인이 A.com이면 SOP 정책에 의거하여, 이미지를 받아을수 있다. 하지만, 서버의 도메인이 다른 경우에는 서버로 부터 이미지를 받을수 있지만 브라우저에서는 CORS정책의 위배되어 실제로는 이미지를 사용할수 없다.
scheme
+ host
+ Port
가 일치해야함.http://data.go.kr
!= https://data.go.kr
http://data.go.kr
!= http://data.go.com
http://data.go.kr:8080
!= http://data.go.com:8081
https://data.go.kr/data/1
= http://data.go.kr/category/1
Access-Control-Allow-Origin
Header 에서 브라우져에서 요청을 보낸 Origin
과 비교 후, 허용할지 아닌지를 결정.Access-Control-Allow-Origin
를 *
로 입력하여 도메인에 상관없이 접근을 허용하게하지만, 보안을 위해서는 특정 도메인을 명시하는것이 좋다.http
Hypertext Transfer Protocol
의 약자https
Hypertext Transfer Protocol Secure
의 약자http
처럼 클라이언트와 서버간의 통신규격 프로토콜Let's Encrypt
,SSL for Free
등)블로킹과 논블로킹의 차이는 소스의 제어권에 차이
블로킹
논블로킹
setTimeout
,ajax(XMLHtttpRequest)
등 비동기 소스가 동기식으로 돌아가면, 해당 소스가 완료될때까지 아래에 내용은 실행 되지않는다. setTimeout
,ajax(XMLHtttpRequest)
등 비동기 소스 실행을 지원하는 webAPIs
가 해당 부분을 실행하게 된다. webAPIs
가 실행하고 나서 이벤트 루프가 돌면서 테스크 큐로 들어간다.