HTTP(HyperText Transfer Protocol) 클라이언트-서버 사이에 이루어지는 요청, 응답 프로토콜로 텍스트 기반의 통신 규약이라고 할 수 있다. 앞서 알아본 TCP/IP를 이용한다. (HTTP3 경우는 UDP 사용) 특징 1. 무상태 프로토콜(Stateless) - 서버가 클라이언트의 상태를 보존하지 않는다. -> 클라이언트의 상태를 보존하지 않기 때문에 서버가 증설되어도 요청을 똑같이 처리해준다. 확장성이 크다! - 상태 유지가 필요한 경우에는 최소한만 사용하고, 꼭 필요한 경우에는 쿠키/세션을 사용하여 상태를 유지한다. 2. 비연결성(Connectionless) - 연결 후 연결을 지속하지 않고 끊어버린다. -> 최소한의 서버 자원을 사용할 수 있다. - 연결을 할때 마다 연결을 확..
IP(Internet Protocol) IP는 송신 호스트와 수신 호스트가 패킷을 보내 서로 정보를 주고 받는 인터넷 규약이다. IP address는 각 장치를 나타내는 고유의 주소를 말한다. 현재 IP주소는 IPv4/IPv6 두가지 체계를 사용하고 있다. IPv4는 32bit의 값을 8bit씩 끊어 .으로 나누는 방식을 사용한다. 약 43억개의 숫자를 가질 수 있는데 최근 대부분이 사용되어 할당이 종료되었고, 반납된 IP 주소를 받거나, 미리 확보해놓은 곳의 IP 주소를 받아 사용할 수 있다. IPv6는 4자리의 16진수 숫자 8개로 표기하고 :으로 나누는 방식을 사용한다. 아직 보급율이 1%도 되지 않지만 점차 사용율이 올라갈 것으로 생각된다. 특징 1. 비신뢰성(unreliability) - 패킷이..
JWT 인증에 필요한 정보들을 암호화 시킨 토큰이다. 최초 서버에서 부여하며, 브라우저가 쿠키 형태로 보관하고 있다가 서버에 요청을 보낼 때 HTTP 헤더에 JWT를 실어 보낸다. Token 구성 Header.Payload.Verified Signature 형태로 Base64url 인코딩을 사용하여 전송 Header - 암호화 방식 및 타입 정보를 작성 Payload - 서버로 보낼 data, 유저의 ID값이나 유효기간 등, key: value 값으로 저장 - 해독이 가능하므로 중요한 data를 담아서는 안된다. Signature - Base64 방식으로 인코딩한 header와 payload Refresh token 사용자의 정보가 만기 되었을 때 서버에 재요청을 하면 Refresh token을 만들어 ..
쿠키 쿠키는 클라이언트 로컬에 저장되는 키, 벨류 값을 가지고 있는 저용량 data 파일이다. 일정시간만 저장할 수 있기 때문에 로그인 유지와 같은 곳에 쓰인다. 사용 밥법 클라이언트가 웹페이지 접속 시 쿠키를 같이 받아 사용자의 로컬에 저장을 한다. 페이지에 재요청할 때에 header에 쿠키값을 넣어서 같이 전송한다. 로그인의 경우 HTTP 통신의 특성상 response를 받으면 접속이 끊기기 때문에 새로운 페이지로 접속할 경우 로그인을 유지할 수 없고 새로 로그인을 해야되는 상황이 벌어진다. 이때 최초 요청에서 받은 쿠키로 사용자가 이미 인증이 되었다는걸 확인 받아 재로그인을 할 필요가 없다. 이미 인증 받은 키를 가지고 있어 새로운 요청을 할 때마다 이 키로 로그인 상태라는 걸 인증하는 셈이다. 세..
정적 웹페이지 서버에 저장되어 있는 HTML과 CSS를 그대로 가져와 보여주는 것 속도가 빠르고 서버에 부담이 없다. 페이지에서 변화가 필요하면 전체를 다시 가져와야되기 때문에 번거롭다. 예시) 회사 소개 동적 웹페이지 상황에 따라 서버에 저장되어 있는 HTML에 데이터를 추가, 가공하여 보여준다. 상황에 따라 특정 부분만 바꿀 수 있기 때문에 훨씬 dynamic하나 보안에 취약하다. 예시) 블로그 동적 웹페이지의 종류 CSR(Client-Side Rendering) - Javascript에 data를 포함해서 보낸 후 client 측에서 실행 SSR(Server-Side Rendering) - Server측에서 data를 전송하여 HTML에 끼워넣는 방법 복합적인 방법 - Client에서 Server로..
AJAX Javascript를 통해 serve와 data를 주고 받는 Javascript library이다. Asynchronous 비동기란 뜻으로 AJAX는 웹페이지를 reloading 없이 data를 주고 받는다. 호출할 때 마다 페이지 전체를 가져올 필요가 없기 때문에 자원과 시간 부분에서 효율이 생긴다. XMLHttpRequest(XHR) 웹 브라우저와 웹 서버 간에 메소드가 데이터를 전송하는 객체 폼의 API이다. AJAX도 해당 객체를 사용하여 data 교환을 한다. AJAX의 진행과정 XMLHttpRequest Object를 만든다. request를 보낼 준비를 브라우저에게 시키는 과정 이것을 위해서 필요한 method를 갖춘 object가 필요함 callback 함수를 만든다. Open a..
JSON 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 특징 - 서버와 클라이언트 간의 통신에서 많이 사용한다. - Javascript의 객체 방식으로 이루어져 있다. - key:valuer값이 존재는 dictionary형태이다. 과거에 XML(태그를 포함한 HTML형식)이 많이 쓰였으나 최근에는 data만을 가지고 있는 JON이 많이 쓰이고 있다. 예시)
JQuery HTML의 요소들을 조작하는, 편리한 Javascript를 미리 작성해둔 것. Javascript library다. Javascript로 길고 복잡하게 써야되는 코드들을 보다 직관적으로 작성할 수 있도록 도와준다. 특징 1. HTML DOM을 손쉽게 조작할 수 있으며, CSS 스타일도 간단히 적용할 수 있다. 2. 애니메이션 효과나 대화형 처리를 간단하게 적용해 준다. 3. 같은 동작을 하는 프로그램을 더욱 짧은 코드로 구현할 수 있다. 예시) $() 팩토리함수 괄호 안에 CSS선택자를 정의해 DOM 노드를 반환한다.