SlideShare a Scribd company logo
오늘은
HTTPS와 REST
먼저 HTTPS
HTTP
+
Secure Socket Layer
SSL이 정보를
암호화 하는 방법
Symmetric-key Algorithm
• 시져암호 같은 건데 대칭키 없이는 풀기 어려움
• 꽤 안전한데 문제는 대칭키만 있으면 쉽게 풀어버림
• 복호를 해야하는 사람에게 대칭키를 줘야만 함
• 주다가 중간에 뺐기면 망함
• 그래도 빨라서 아직도 데이터를 이 방식으로 암호화함
• 그래서 대신에 RSA로 대칭키자체를 암호화함
RSA
• 암호키가 2개
• A로 암호화하면 B로 복호화, B로 암호화하면 A로 복호화가능
• A키는 모든 사용자에게 뿌림, B키는 서버 혼자만 가지고 있음
• 사용자가 A로 암호화해서 서버만 복호화 가능
• 정보 자체를 RSA키로 암호화,복호화하기에는 CPU가 부담됨
Rivest Shamir Adleman
출처 링크
그래도 서버 개발자가
나쁜 사람이면 망함
OAUTH
보안하던 김에 마저 해봅시다
이게 OAuth.
원래는 많았는데 다 합침
• 구글의 AuthSub
• AOL의 OpenAuth
• 야후의 BBAuth
• 아마존의 웹서비스 API
용어정리만 한번하고 넘어가겠음
• User: 사용자
• Service Provider: 로그인 API 제공하는 곳
• Consumer: 로그인 API를 사용하는 사이트
• Request Token:
• 어디서 로그인 시도하는지 consumer-service provider
• Access Token: 로그인 됨. 어디까지 접근되는지.
인증방식
!
• 소비자가 서비스제공자에게 요청토큰을 요청한다.
• 서비스제공자가 소비자에게 요청토큰을 발급해준다.
• 소비자가 사용자를 서비스제공자로 이동시킨다. 여기서 사용자 인증이 수행된다.
• 서비스제공자가 사용자를 소비자로 이동시킨다.
• 소비자가 접근토큰을 요청한다.
• 서비스제공자가 접근토큰을 발급한다.
• 발급된 접근토큰을 이용하여 소비자에서 사용자 정보에 접근한다.
REST
Representational State Transfer
URI를 아름답게
URI는 리소스와 메소드
URI는 리소스와 메소드
• User 리스트 보기: Get /users/
• User 생성 폼: /user/new
• User 생성 : POST /user/93403
• User 수정 : PUT /user/93403
• User 조회 : GET /user/93403
• User 취소 : DELETE /user/93403
리소스는 명사
메소드는 동사
꼭 알아둬야 할 URL 규칙
• 슬래시(/)는 계층구조일때만 쓴다.
• ex) https://examplecom/2013/03/21/bobobobo
• 동사가 쓰고 싶을 때는 다시 한번 생각해보자
• _보다는 -를 추천
응답상태코드
• 1XX 조건부 응답
• 2XX 성공
• 3XX 리디렉션 완료
• 4XX 요청 오류
• 5XX 서버 오류
알아둬야 할 응답 상태 코드
• 200 OK
• 304 Not Modified
• 400 Bad Request
• 403 Forbidden
• 404 Not Found
• 500 Internal Server Error
그 밖의 응답 상태 코드들
REST가 완전 답은 아니다
HEAD에 담아둬야할 Meta Data
HTTP/1.1 200 OK
Date: Mon, 30 Jun 2014 09:24:16 GMT
Server: Apache
Last-Modified: Sat, 01 Sep 2012 18:32:44 GMT
ETag: "149-4c8a82265cb00"
Accept-Ranges: bytes
Content-Length: 329
Vary: Accept-Encoding
Content-Type: text/html
자잘한 규칙들은
곧 정리해서 올리겠음
지난번에 한 거 복습합시다

More Related Content

Viewers also liked

Lauren M Lavretsky November 2016
Lauren M Lavretsky November 2016Lauren M Lavretsky November 2016
Lauren M Lavretsky November 2016
Lauren Lavretsky
 
SAGE 2YC Educational Outcomes and Assessment
SAGE 2YC Educational Outcomes and AssessmentSAGE 2YC Educational Outcomes and Assessment
SAGE 2YC Educational Outcomes and Assessment
SERC at Carleton College
 
Burglar alarm basics-4
Burglar alarm basics-4Burglar alarm basics-4
Burglar alarm basics-4
grantlerc
 
Nur Aini
Nur AiniNur Aini
Nur Aini
efasofiyana44
 
ERIC HUANG 2015a
ERIC HUANG 2015aERIC HUANG 2015a
ERIC HUANG 2015a
Eric Huang
 
Праздники и корпоративы в Рецепторе
Праздники и корпоративы в РецептореПраздники и корпоративы в Рецепторе
Праздники и корпоративы в Рецепторе
Sergey Koshkin
 
Facebook
Facebook Facebook
Facebook
Lakayla03
 
PolymPart_EN
PolymPart_ENPolymPart_EN
PolymPart_EN
Polympart .
 
Toolkit: improving hydration among older people
Toolkit: improving hydration among older peopleToolkit: improving hydration among older people
Toolkit: improving hydration among older people
Health Innovation Wessex
 
Rachel sparks ca 1_flip chart_reading strategies
Rachel sparks ca 1_flip chart_reading strategiesRachel sparks ca 1_flip chart_reading strategies
Rachel sparks ca 1_flip chart_reading strategies
rachelsparkles26
 

Viewers also liked (10)

Lauren M Lavretsky November 2016
Lauren M Lavretsky November 2016Lauren M Lavretsky November 2016
Lauren M Lavretsky November 2016
 
SAGE 2YC Educational Outcomes and Assessment
SAGE 2YC Educational Outcomes and AssessmentSAGE 2YC Educational Outcomes and Assessment
SAGE 2YC Educational Outcomes and Assessment
 
Burglar alarm basics-4
Burglar alarm basics-4Burglar alarm basics-4
Burglar alarm basics-4
 
Nur Aini
Nur AiniNur Aini
Nur Aini
 
ERIC HUANG 2015a
ERIC HUANG 2015aERIC HUANG 2015a
ERIC HUANG 2015a
 
Праздники и корпоративы в Рецепторе
Праздники и корпоративы в РецептореПраздники и корпоративы в Рецепторе
Праздники и корпоративы в Рецепторе
 
Facebook
Facebook Facebook
Facebook
 
PolymPart_EN
PolymPart_ENPolymPart_EN
PolymPart_EN
 
Toolkit: improving hydration among older people
Toolkit: improving hydration among older peopleToolkit: improving hydration among older people
Toolkit: improving hydration among older people
 
Rachel sparks ca 1_flip chart_reading strategies
Rachel sparks ca 1_flip chart_reading strategiesRachel sparks ca 1_flip chart_reading strategies
Rachel sparks ca 1_flip chart_reading strategies
 

Similar to 03. HTTPS & Restful

REST API 설계
REST API 설계REST API 설계
REST API 설계
Terry Cho
 
Restful API guide
Restful API guideRestful API guide
Restful API guide
Benjamin Kim
 
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
MinKyu Kim
 
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
Seongho Lee
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
Choonghyun Yang
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
nexusz99
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
Jay Park
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
dgmit2009
 
Daum OAuth 2.0
Daum OAuth 2.0Daum OAuth 2.0
Daum OAuth 2.0
Daum DNA
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
kidoki
 
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
Kivol
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기
Inho Kwon
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
Keeyong Han
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장
Hyejin Oh
 
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
J B
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장JeongBong Kim
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Manjong Han
 
Restful web service
Restful web serviceRestful web service
Restful web service
sunguen lee
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1도성 김
 
Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상knight1128
 

Similar to 03. HTTPS & Restful (20)

REST API 설계
REST API 설계REST API 설계
REST API 설계
 
Restful API guide
Restful API guideRestful API guide
Restful API guide
 
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
 
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
Daum OAuth 2.0
Daum OAuth 2.0Daum OAuth 2.0
Daum OAuth 2.0
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
 
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
GraphQL in Action - REST와 이별할 때 생각해야 하는 것들
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장
 
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
 
Restful web service
Restful web serviceRestful web service
Restful web service
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1
 
Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상
 

More from Shin Kim

02. Model in Ruby on Rails
02. Model in Ruby on Rails02. Model in Ruby on Rails
02. Model in Ruby on Rails
Shin Kim
 
NGS(Next-Generation Sequencing) Introduction
NGS(Next-Generation Sequencing) IntroductionNGS(Next-Generation Sequencing) Introduction
NGS(Next-Generation Sequencing) Introduction
Shin Kim
 
엷홈페이지의 이해
엷홈페이지의 이해엷홈페이지의 이해
엷홈페이지의 이해
Shin Kim
 
엷 인프라 이해하기 & Ionic로 앱 만들기
엷 인프라 이해하기 & Ionic로 앱 만들기엷 인프라 이해하기 & Ionic로 앱 만들기
엷 인프라 이해하기 & Ionic로 앱 만들기
Shin Kim
 
Infer hidden relationships from literature by multi level context terms
Infer hidden relationships from literature by multi level context termsInfer hidden relationships from literature by multi level context terms
Infer hidden relationships from literature by multi level context terms
Shin Kim
 
Rajo link
Rajo linkRajo link
Rajo link
Shin Kim
 
생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice
생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice
생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice
Shin Kim
 
Identifying Gene-Disease Associations
Identifying Gene-Disease AssociationsIdentifying Gene-Disease Associations
Identifying Gene-Disease Associations
Shin Kim
 

More from Shin Kim (8)

02. Model in Ruby on Rails
02. Model in Ruby on Rails02. Model in Ruby on Rails
02. Model in Ruby on Rails
 
NGS(Next-Generation Sequencing) Introduction
NGS(Next-Generation Sequencing) IntroductionNGS(Next-Generation Sequencing) Introduction
NGS(Next-Generation Sequencing) Introduction
 
엷홈페이지의 이해
엷홈페이지의 이해엷홈페이지의 이해
엷홈페이지의 이해
 
엷 인프라 이해하기 & Ionic로 앱 만들기
엷 인프라 이해하기 & Ionic로 앱 만들기엷 인프라 이해하기 & Ionic로 앱 만들기
엷 인프라 이해하기 & Ionic로 앱 만들기
 
Infer hidden relationships from literature by multi level context terms
Infer hidden relationships from literature by multi level context termsInfer hidden relationships from literature by multi level context terms
Infer hidden relationships from literature by multi level context terms
 
Rajo link
Rajo linkRajo link
Rajo link
 
생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice
생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice
생물학적 해석 도구 실습: DAVID, ArrayXPath, BioLattice
 
Identifying Gene-Disease Associations
Identifying Gene-Disease AssociationsIdentifying Gene-Disease Associations
Identifying Gene-Disease Associations
 

03. HTTPS & Restful