Method 1. GET: 리소스 조회 GET method는 클라이언트가 서버에게 정보를 요청할 때 사용되는 method이다. GET을 통한 요청은 URL 주소 끝에 key-value 쌍으로 parameter를 포함하여 전송을 하는데, 이 부분을 Query String 이라고 부른다. GET의 중요한 특징 중 하나는 캐시가 가능하다는 것이다. 한 번 서버에 GET 요청을 한 적이 있다면 브라우저가 그 결과를 저장해 둔다. 이후 동일 한 요청은 브라우저에 저장된 값으로 가져올 수 있다. 2. POST: 요청 데이터 처리(주로 생성) POST method는 클라이언트가 body를 통해 전달한 데이터를 서버가 처리하도록 요청하는 method이다. 서버는 POST 메시지를 받으면 꼭 리소스를 등록하는 것만 아니..
인증과 인가 인증(authentication)은 사용자가 누구인지 확인하는 절차이다. 회원가입과 로그인 과정이 인증의 대표적인 예시이다. 인가(authorization)은 사용자가 요청하는 것에 대한 권한이 있는지를 확인하는 절차이다. 세션을 통한 인증, 인가(auth)의 절차는 다음과 같다. 클라이언트가 로그인을 하면 서버는 회원정보를 대조하여 인증을 한다.(authentication) 회원 정보(클라이언트 정보)를 세션저장소에 생성하고 session ID를 발급한다. http response header 쿠키에 발급한 session ID를 담아서 보낸다. 클라이언트에서는 session ID를 쿠키 저장소에 저장하고 이후에 http request를 보낼 때마다 쿠키에 session ID를 맏아서 보낸다..
쿠키와 세션 쿠키 클라리언트(브라우저) 로컬에 key-value 쌍을 저장되는 데이터 팡리이다. 유효시간 내에서는 브라우저가 종료되어도 계속 유지된다. 세션 브라우저가 종료되거나, 서버에서 해당 세션을 삭제할 수 있기 때문에 쿠키보다 보안성이 좋다. 또한 서버에 데이터를 저장하므로 서버 용량이 허용하는 한에서 제한 없이 데이터를 저장할 수 있다는 장점이 있지만 서버의 부하가 커진다는 단점이 될 수 있다. 쿠키와 세션을 사용하는 이유: HTTP의 connectionless, stateless 클라리언트가 요청을 했을 때 그 요청에 맞는 응답을 보낸 후 연결을 끊고, 서버는 클라이언트에 대한 상태 정보를 유지하지 않기 때문에 알 수 없게 된다. 쿠키(cookie) 쿠키의 생성과 저장은 구현에 따라 다르지만 ..
브라우저를 열어 주소창에 www.naver.com을 을 입력한다. (www.naver.com)는 도메인 네임으로 되어있기 때문에 DNS에 도메인을 검색하기 위한 요청을 보낸다. DNS는 일련의 과정을 거친 후 (www.naver.com)에 대응하는 ip 주소를 응답으로 돌려준다. 받은 ip 주소를 사용하여 TCP 통신을 통해 해당 ip 서버에 요청을 보낸다. 요청을 받은 서버(www.naver.com)는 요청 내용에 대한 일련의 처리 과정을 거쳐 응답 메시지를 만든다. 응답메시지를 TCP 통신을 통해 다시 클라이언트에게 전송한다. 브라우저는 받은 응답메시지를 HTTP 프로토콜을 사용하여 웹페이지를 구성하며 사용자에게 Naver 화면을 보여준다. 웹 동작 방식 유저가 브라우저에서 url을 입력하면 http..
HTTP(Hyper Text Transfer Protocol)란? 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. TCP/IP 기반으로 작동하며 가장 큰 특징은 Connectionless와 Stateless 이다. 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP의 구조 클라이언트가 HTTP request를 보내면 서버는 HTTP response를 클라이언트에 보내는 구조이다. request message start line(method, path, HTTP version), headers, body로 이루어져 있고 respons..
3 Way-Handshake란? 전송제어 프로토콜(TCP)에서 통신을 하는 장치간 서로 연결이 잘 되어있는지 확인하는 과정/방식이다. 더 쉽게 말해서 송수신자 사이에 연결을 확인하는 과정이다. TCP 프로토콜은 연결지향적이다. 이는 상대방이 내 신호를 받을 수 있는지 확인하고 전송을 하는 것을 의미한다. 이때 내 신호를 받을 수 있는 지 확인하는 것이 3 way handshake이다. #1 SYN 1단계: 들려? 클라이언트가 연결요청 메시지(SYN)을 전송한다. 클라이언트는 Synchronize Sequence Number(SYN)라는 임의의 랜덤 숫자를 함께 전송한다. #2 SYN+ACK 2단계: 응 들려! 너도 들려? 서버가 요청을 수락하며, 클라이언트에게도 들리냐는 연결요청 메시지를 전송한다. 그 ..