본문 바로가기

전체 글

[WAS]간단한 SNS 서비스 만들기 개념 간단한 웹 어플리케이션 서버를 만들어 SNS 서비스를 만들어 볼 것이다. WEB SERVER 1, 6번 과정으로 클라이언트로 부터 HTTP 요청을 받고 HTTP 응답으로 HTML와 같은 웹페이지를 그대로 반환하는 서버를 말한다. 이 때 웹페이지는 그림, CSS, JS를 포함하는데, 이를 정적파일이라고 한다. 정적 파일을 있는 그대로 반환하는 서버이므로, 정적 웹서버라고도 한다. nginx, Apache Web Server 등이 있다. WAS(Web Application Server) 웹 어플리케이션 서버도 웹 페이지를 전달하는 역할을 수행한다. 그러나 동적인 컨텐츠를 생성하거나 업데이트하는 비즈니스 로직을 수행할 수 있다. 동적인 요소를 생성하는 서버 사이드 코드를 구현할 수 있는 프로그래밍 런타임 또는.. 더보기
[HTTP]Rest API Rest API란 무엇일까? 웹 애플리케이션은 HTTP 메소드를 이용해 서버와 통신한다. 대표적으로 다음과 같다. GET: 웹 페이지나 데이터를 요청한다. POST: 새로운 글이나 데이터를 전송한다. DELETE: 저장된 글이나 데이터를 삭제한다. 클라이언트와 서버가 HTTP 통신을 할 때는 어떤 요청을 보내고 받느냐에 따라 메소드의 사용이 달라진다. 이 메소드의 사용은 아무런 규칙 없이 이루어지는 것이 아니고, 제대로 보내고 받을 수 있는 일종의 규약이 존재한다. 이 규약을 REST API(Represntational State Transfer API)라고 한다. 즉, 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 .. 더보기
[HTTP]Remote Address toss.im로 가는 네트워크를 보면 remote address가 있다. 이게 뭘까? https 프로토콜을 사용하므로 https://211.115.96.201:443 해당 IP주소를 통해 접속할 수 있겠다. 그런데 안된다? 그러나 고급 설정에 보안 위험을 감수한다면 접속이 되긴한다. 왜 이럴까? IBM에 따르면 This command specifies the destination address of log messages or the log itself. remote address는 log 메세지나 log의 목적지 주소를 특정하는 명령이란다. 잘모르겠다.. 이러한 궁금증을 가진채 더욱 배우고 익혀나갈 것이다. 더보기
[HTTP]네이버를 통해 쿠키역할 배우기 대한민국 대표 포털사이트인 네이버를 통해 쿠키의 역할을 눈으로 확인 할 수 있다. 1. 로그인된 네이버 웹페이지를 켠다. 2. f12를 눌러 애플리케이션 탭에 들어가 좌측 네이버 쿠키들을 확인한다. 사진에 보이는 것들이 클라이언트에 저장된 쿠키들로 로그인과 개인 설정관련된 정보를 담고 있다. 이것들이 클라이언트가 요청시 함께 전송되는 것이다. 3. 쿠키를 다 지워보자. 4. 쿠키를 지운 후, 새로고침을 하였더니 로그아웃이 되었다. 이로써 쿠키의 역할이 로그인 유지라는 것을 알았다. 5. 다시 새로고침후 네트워크 탭에서 http 헤더를 통해 추적해보았더니, Request Headers에 cookie가 발견되었다. 이는 새로고침 시, 네이버 서버에서 set-cookie 헤더를 통해 클라이언트에게 보낸 것을 .. 더보기
[HTTP]실제 네트워크를 보고 유추해보자 General https 프로토콜을 사용했다. host는 toss.im인 것을 알 수있다. GET 매소드를 사용하여 정보를 읽는 것을 요청했다. 성공적으로 요청과 응답이 이루어졌다. 200 OK Request Headers 클라이언트는 text/html 파일을 선호한다. 클라이언트는 xhtml+xml 파일을 제일 선호하고 그 다음으로 xml 파일을 선호한다. 클라이언트는 이미지 파일로 avif, webp, apng를 선호한다. 클라이언트는 gzip, deflate, br 형식의 압축파일을 선호한다. 클라이언트는 ko-KR, ko, en-US, en 클라이언트의 브라우저에 쿠키파일로 _hjid, _fbp 등이 저장되어 있고 이 파일을 포함해서 서버에 요청했다. host의 도메인 주소는 toss.im이다. .. 더보기
[HTTP]표현 헤더(Representation Headers)와 콘텐츠 협상(Content negotiation) 표현은 무엇일까? 표현은 요청이나 응답에서 전달할 실제 데이터를 뜻한다. 따라서 표현 데이터는 실제 데이터를 의미하고 페이로드(payload)라고도 한다. 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다. 표현 헤더는 어떻게 쓸까? 표현 헤더는 HTTP 헤더의 일종으로, 형식이 같다. : //field-name은 대소문자 구분없음 주의! 표현 헤더에는 어떤게 있을까? 위 예시와 같이 표현 헤더에는 `Cotent-Type`과 `Content-Length`같은 부가정보를 담는다. 이 외에도 메시지 바디의 내용, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등이 있다. 임의의 헤더 추가도 가능하다! 그저 데이터의 부가정보를 담는 헤더이므로 요청, 응답 둘 다 사용한다. Conten.. 더보기
[웹 서비스]HTTP 주요 헤더 HTTP를 통해 브라우저와 서버가 통신을 한다. 이때 HTTP는 start-line, HTTP headers, empty line, body으로 구성되는데, HTTP headers라는 녀석을 알아볼 것이다. 이렇게 생겼다. 요청과 응답에 따라 각기 다른 헤더가 사용되고, 종류가 엄청 많지만 기본적인 것들을 익혀놓고자 한다. 요청(Request)에서 사용되는 헤더 From: 유저 에이전트의 이메일 정보 일반적으로 잘 사용하지 않음 검색 엔진에서 주로 사용 요청에서 사용 Referer: 이전 웹 페이지 주소 현재 요청된 페이지의 이전 웹 페이지 주소 A→B로 이동하는 경우 B를 요청할 때 `Referer: A`를 포함해서 요청 `Referer`를 사용하면 유입경로 수집 가능 요청에서 사용 referer는 단.. 더보기
[웹 서비스]HTTP 쿠키 쿠키란? 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송한다. 서버는 브라우저 요청과 쿠키의 전송이 동일한 브라우저에서 들어왔는지 아닌지를 판단한다. 상태가 없는(stateless) HTTP 프로토콜에서 상태 정보를 기억시키는 역할을 하여, 사용자의 로그인 상태를 유지할 수 있다. ※상태가 없는(stateless) : 브라우저가 서버에 HTTP 프로토콜을 통해 요청시, 응답과 동시에 해당 정보는 폐기되는 것. 예를 들어 브라우저가 서버에게 "오늘 저녁 삼겹살 어때?"라고 묻는다면, "좋아."라고 답할 것이다. 그 후 다음 요청으로 "몇시가 좋아?"라고 묻는다면 서버는 "그게 무슨 말이야?".. 더보기