본문 바로가기
Web

WebService 기초지식

by 인기쟁이 돌고래 2021. 2. 11.

 HTTP란? 

 

하이퍼미디어(HTML등) 문서를 전송하기위한 Application 프로토콜. (아래 레이어 참조) 

- 비연결성 프로토콜 (Connectionless)

   > 클라이언트 요청에 대해 서버가 응답을 마치면 connection을 끊어버림.

   > 장점 : 다수의 클라와 연결 유지에 필요한 리소스 낭비 방지 > 서버가 더 많은 클라와 연결가능.

   > 단점 : 매번 connection을 다시 맺어야해서 연결/해제에 대한 오버헤드 발생.

   > 보완가능방법 : KeepAlive 속성을 이용해 헬스체크처럼 패킷을 보내 연결을 유지할 수 있음.

      (속성사용 가능하지만 비표준 developer.mozilla.org/ko/docs/Web/HTTP/Headers/Keep-Alive)

- 무상태 프로토콜 (Stateless)

   > 서버가 요청간에 어떠한 상태도 유지하지 않는다. 

   > 해당 client가 어떤 상태로 (이전에 인증을 받았었는지 등) 요청했는지는 서버가 모른다 (정보 가지고 있지 않음)

   > 보완가능방법 : 쿠키/세션/토큰 

- 클라이언트 - 서버 모델

   > 요청 (크롬 등 브라우저) - 대답 (아파치 등 서버) 의 구조이다 

   > 다른 구조로는 각client가 client도 되고 server도 되는 peer-to-peer 가 있음.

- TCP/IP 레이어 사용

   >  TCP/IP를 사용하면 는 메시지를 잃지 않음 (UDP는 메시지 잃어버림)

Network 계층

참고

developer.mozilla.org/ko/docs/Web/HTTP

victorydntmd.tistory.com/286

 

 

 

 

 Stateless 보완방법 - 쿠키

- 사용자가 어떤 웹 사이트 방문시 Client에 기록을 남기는 방법 

- 장점 : 서버에 저장 안해도되서 저장공간을 애낄 수 있다. 

- 단점 : 공격자의 위변조가 쉽다. 

 

- 털리면?  유저의 행동을 추척하거나 접근권한을 획득 할 수 있다.

- 쿠키의 사양은 최소기준은 있지만 브라우저마다 다르다. (크롬은 2MB이상인 경우 이슈가 있었다) 

 

쿠키에는 이름,값, 도메인(어디서구웠는지), 경로, 만료시간 등등 정보가 있다.

ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4

 

 

 Stateless 보완방법 - 세션

- 사용자가 어떤 웹 사이트 방문시 사이트 Server 에 기록을 남기는 방법 

- 장점 : 보안적으로 쿠키보다 안전하다 (but, 중간에 탈취 가능하므로 완벽하지는 않음.)

- 단점 : 저장공간도 필요하고 sessionID에 따른 매핑도 확인해야해서 과부화 생길 수 있음.

 

- 정보 내용자체는 서버에 저장하지만, sessionID (요청자 ID) 는 쿠키에 저장.

- 요청시마다 세션ID를 이용해 사용자 인식.

 

 Stateless 보완방법 - 토큰 (JWT, OAuth) 

- 저장하지 않고 암호화/치환 해서 들고 다니겠다.

- 장점 : 탈취당해도 key가 없으면 내용을 볼 수 없어 보안성에 좋음

- 단점 : 토큰을 복호화 해야하는 오버헤드 발생.

 

 

댓글