네트워크/네트워크 정리
-
REST API의 이해와 설계네트워크/네트워크 정리 2020. 9. 7. 18:17
REST란? REST는 웹의 창시자 중 한 사람인 Roy Fielding의 2000년 논문에 의해 소개되었다. 현재의 아키텍처가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단하였고 웹의 강점을 최대한 활용 가능한 네트워크 기반의 아키텍처를 소개했는데 그것이 바로 Representational safe transfer ( REST )이다. REST의 기본 REST 요소로는 크게 리소스, 메서드, 메시지 3가지 요소로 구성된다. 이름이 "Terry"인 사용자를 생성한다 라는 호출 HTTP POST http://myweb/users/ { "users" : { "name" : "terry" } } "사용자"는 생성되는 리소스 "생성한다"라는 행위는 메서드 "이름은 Terry인 사용자"라는 메시지가..
-
OAuth2 인증 방식 정리네트워크/네트워크 정리 2020. 5. 13. 02:18
OAuth2.0 -OAuth2.0이란 각종 웹, 모바일 어플리케이션에서 타사의 API를 사용하고 싶을 때 권한 획득을 위한 프로토콜(Protocol)입니다. 간단하게는 로그인에서부터 각종 API를 보다 안전하고 편하게 사용하게 해줍니다. OAuth2 승인 방식의 종류 Authorization Code Grant Type : 권한 부여 코드 승인 타입 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용됩니다. 리스소 접근을 위한 사용자 명과 비밀번호, 권한 서버에 요청해서 받은 권한 코드를 함께 활용하여 리소스에 대한 엑세스 토큰을 받는 방식입니다. Implicit Grant Type : 암시적 승인 권한 부여 코드 승인 타입과 다르게 권한 코드 교환 단계 없이 엑세스 토큰을 즉시 반환받아..
-
Https는 공개키? 대칭키? 비대칭키?네트워크/네트워크 정리 2020. 4. 3. 01:37
공개키와 비대칭키를 혼용해서 쓰는 걸로 알고 있고 두 개 다 같은 말이라고 생각하고 글을 쓰겠다. Https 관련 글들을 보면 공개키를 통해 평문을 암호화 복호화한다고 되어있고 어느 글들은 공개키(비대칭키) + 대칭키 를 같이 사용하고 있다고 쓰여있다. 따라서 https의 통신 흐름을 좀 더 살펴보았다. 우선 CA기관과 인증서에 대해서 간략하게 알아보자. 인증서는 로컬로 내가 만들 수 있는 인증서 ( 사설 인증서 ) CA 기관에서 만든 인증서가 있다. ( 공인 인증서 ) 브라우저가 이미 인증서를 발급하는 기관들의 public 키를 알고있는 것. 내가 만든 인증서는 public키가 없고. 따라서 빨간색과 함께 warning이란 글이 보이는 것이다. 암호화 복호화 알고리즘은 대칭키 비대칭키가 있게 되는데 대..
-
Get과 Post의 차이네트워크/네트워크 정리 2020. 2. 5. 14:26
GET 메서드 방식 개념 정보를 조회하기 위한 메서드 서버에서 어떤 데이터를 가져와서 보여주기 위한 용도의 메서드 가져오는 것(Select) 사용 방법 URL의 끝에 '?'가 붙고, 요청 정보가 (key=value)형태의 쌍을 이루어 ?뒤에 이어서 붙어 서버로 전송한다. 요청 정보가 여러 개일 경우에는 '&'로 구분한다. Ex) www.urladdress.xyz?name1=value1&name2=value2 특징 URL에 요청 정보를 붙여서 전송한다. URL에 요청 정보가 이어붙기 때문에 길이 제한이 있어서 대용량의 데이터를 전송하기 어렵다. 한 번 요청 시 전송 데이터(주솟값 + 파라미터)의 양은 255자로 제한된다.(HTTP/1.1은 2048자) 요청 정보를 사용자가 쉽게 눈으로 확인할 수 있다. P..
-
TCP 3 way handshake & 4 way handshake네트워크/네트워크 정리 2020. 1. 29. 17:53
그전에 SYN Packet과 ACK Packet 이란? SYN : synchronize sequence number ACK : acknowledgement TCP Header엔은 Code Bit라는 부분이 존재하고 총 6Bit로 이루어져 있습니다. Urg-Ack-Psh-Rst-Syn-Fin 순서로 해당 위치의 비트가 1이면 해당 패킷의 내용을 담고 있다는 것을 나타냅니다. (예 : SYN 패킷일 경우 000010 ) * TCP 3-way Handshake 란? TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake를 사용한다. TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 ..
-
웹에서의 쿠키와 세션네트워크/네트워크 정리 2020. 1. 18. 01:13
쿠키와 세션을 사용하는 이유는 뭘까? HTTP 프로토콜의 특징이자 약점을 보완하기 위한 하나의 방법이다. 그러면 HTTP 프로토콜의 특징부터 살펴보자. 1) 비연결 지향 ( ConnectionLess ) HTTP는 클라이언트가 서버에 http request message를 보내면 서버는 클라이언트에 요청에 맞게 http response message를 보내고 접속을 끊는다. * HTTP 1.1 버전의 keep-alive 기능은 데이터를 보낸 이후에도 커넥션을 어느정도 유지하는 기능이며 default 설정이다. 네트워크 관점에서 keep-alive는 하나의 옵션이고 ConnectionLess의 연결 비용을 줄이는 것이 장점이기에 비연결지향으 로 알아두는 것이 맞다. 2) 상태 정보를 유지하지 않음 ( St..
-
Http와 Https 의 차이네트워크/네트워크 정리 2020. 1. 18. 00:27
HTTPS (feat. http) HTTPS에 대해 알아보기 전에 HTTP를 간단하게 설명할 수 있으면 좋다. HTTP는 HyperText Tranfer Protocol로 WWW상에서 정보를 주고받는 프로토콜이다. 클라이언트인 웹브라우저가 서버에 HTTP를 통해 웹페이지나 이미지 정보를 요청하면 서버는 이 요청에 응답하여 요구하는 정보를 제공하게 된다. 결국, HTTP는 웹브라우저(Client)와 서버(Server) 간의 웹페이지 같은 자원을 주고받을 때 쓰는 통신 규약이다. http는 텍스트 교환이다. html페이지도 텍스트다. 바이너리 데이터로 되어있는 것도 아니고 단순 텍스트를 주고받기 때문에 누군가 네트워크에서 신호를 가로채어 본다면 내용이 노출된다. 이런 보안상의 문제를 해결해주는 프로토콜이 H..
-
TCP와 UDP네트워크/네트워크 정리 2020. 1. 16. 01:39
TCP와 UDP 네트워크 계층 중 전송 계층에서 사용하는 프로토콜 TCP(Transmission Control Protocol) 인터넷 상에서 데이터를 메시지의 형태(세그먼트라는 블록 단위)로 보내기 위해 IP와 함께 사용하는 프로토콜이다. TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다. 연결형 서비스로 가상 회선 방식을 제공한다. 3-way handshaking과정을 통해 연결을 설정하고, 4-way handshaking을 통해 연결을 해제한다. 흐름 제어 및 혼잡 제어를 제공한다. 흐름 제어 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 것 송신하는 곳에서 감당이 안되게 많은 데이터를 빠르게..