본문 바로가기

HTTP

(7)
HTTPS에 대해서 HTTPS를 쓰는 이유1. 암호화클라이언트와 서버는 HTTP를 이용해서 데이터를 보낸다.데이터는 텍스트로 구성된다.만약 중간에 해커가 데이터를 가로챈다면 암호와 같은 중요한 정보가 노출될 수 있다.이를 방지하기 위해 HTTPS를 써서 데이터를 암호화시킨다. 2. 신뢰할 수 있는 사이트Certificate Authority(이하 CA)라는 기관에서 검증된 사이트만 브라우저의 주소창에 HTTPS로 나타나기 때문에공인 사이트로 위장해 사기를 치려는 짝퉁 사이트를 분간해낼 수 있다. 대칭키와 비대칭키암호화를 하는 방식으로 대칭키와 비대칭키를 사용한다. 대칭키클라이언트와 서버에 대칭키를 각각 두고 이를 이용해서 데이터를 암호화하거나 복호화 할 수 있다.대칭키를 갖고 있지 않으면 데이터를 탈취하더라도 암호화 되어 ..
OAuth 2의 인증 과정 OAuth 2는 특정 웹 서비스(Client)에서 구글과 같은 서비스(Resource Server, Authorization Server)의 기능을 이용할 때 사용한다. 여기서는 특정 웹 서비스를 쇼핑 웹이라하고 쇼핑 웹에서 구글의 기능을 사용한다고 가정하겠다. Client 등록쇼핑 웹(Client)에서 구글의 기능을 사용하려면 쇼핑 웹을 구글에 등록해야 한다.보통은 등록을 하면 Client ID와 Client Secret, Authrized Redirect URI를 받는다. Access 토큰 요청사용자가 쇼핑 웹에 접속하고 여기서 구글의 어떤 기능을 사용하려면URL에 client_id와 특정 기능을 나타내는 scope, redirect_uri를 넣어서 요청한다. 여기서 사용자가 구글에 로그인이 돼 있지..
Fetch 기본 사용 방법 fetch를 이용하면 서버에서 데이터를 가져오거나 추가하는 등의 요청을 할 수 있다. fetch는 새로 생긴 메소드이고 이전에는 XMLHttpRequest 객체를 이용해서 데이터를 주고 받았다. 대부분 fetch를 쓰겠지만 다음의 경우에는 XMLHttpRequest을 이용해야 한다. 1. XMLHttpRequest가 사용된 예전 코드를 유지보수 할 때 2. 폴리필 없이 구형 브라우저에서도 돌아가도록 해야 할 때 3. fetch에 없는 기능을 사용할 때 GET 요청 app.get('/user', (req, res) => { res.status(200).send({ id: 1, name: 'john' }); }); NodeJS Express의 서버 코드가 위와 같다면 아래 getData 메소드를 클라이언트에..
REST API에 대해서 의미 API(Application Programming Interface)는 서로 다른 두 프로그램이 소통할 수 있게 해준다. 웹에서는 서버와 클라이언트가 데이터를 주고 받을 때 사용된다. REST API(Representational State Transfer)는 API의 한 방식으로 간단히 말하자면 URL을 통해서 데이터를 주고 받는다고 할 수 있다. 클라이언트에서 HTTP를 이용해 요청(request)을 보내면 서버에서 이에 따른 응답(response)을 보내주는 식으로 소통한다. 요청 REST API로 서버에 요청을 보내기 위해서는 다음의 4가지 구성요소가 필요하다. URL (endpoint) URL은 요청할 데이터의 위치를 가리킨다. URL은 root-endpoint와 path로 나뉘는데 roo..
주소 창 입력부터 렌더링까지 브라우저가 작동하는 과정 주소 창에 URL(Uniform Resource Locator)를 입력하면 URL에 해당하는 서버에 HTTP 방식으로 request를 보내게 되는 것이고 서버는 요청한 내용을 다시 HTTP 방식으로 response해서 클라이언트에 보내게 된다. 이 과정에서 클라이언트가 받은 내용은 보통 HTML 문서이고 이에 따라 브라우저가 DOM을 구성하게 된다. 여기서 DOM은 HTML 태그 각각을 객체로 만든 것이라고 생각하자. DOM에서 필요한 이미지와 폰트 등을 불러오기 위해 다시 HTTP 요청을 병렬로 보낸다. 브라우저는 DOM과 불러온 resource를 바탕으로 화면에 렌더링을 한다.
Express에서 cookie를 생성하는 방법 cookie-parser를 설치하고 npm i cookie-parser 아래의 코드를 입력한 뒤 서버를 실행한다. node index.js const express = require('express'); const cookieParser = require('cookie-parser'); const app = express(); const port = 3000; app.use(cookieParser()); app.get('/', (req, res) => { console.log('req.cookies:', req.cookies.cookieKey); res.cookie('cookieKey', 'cookieValue', { maxAge: 900000, httpOnly: true }); res.status(20..
서버에 접근할 때 simple request인 경우 다음의 조건들을 모두 갖출 때 simple request가 요청되고 그렇지 않은 경우에는 preflighted request가 요청돼 OPTIONS 메소드를 보내게 된다. 1. GET, HEAD, POST 메소드일 때 2. 아래의 헤더일 때 accept accept-language content-language content-type DPR downlink save-data viewport-width width 3. content-type 헤더를 쓸 경우에는 아래의 값만 허용된다. application/x-www-form-urlencoded multipart/form-data text/plain 4. request에서 쓰는 XMLHttpRequestUpload 객체에 이벤트 리스너가 등록되면 안 된다. ..