네트워크 8

[네트워크]API, REST API란?

API란? API(Application Programming Interface, 응용 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 내가 정보를 담아 어떤 일을 서버에 요청하면, 서버에서 내가 보낸 데이터를 요청사항대로 처리하여 결과를 보내주는 것이다. 예를들어 페북에서 메세지 보내기, slack에서 구글드라이브 연결, 항공예매 페이지에 날짜,장소를 입력 후 검색하여 목록을 조회하는 것 등이 API를 활용하는 것이다. REST란? REST는 Reperesentational State Transfer의 약자이다. 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다. URI를 통해..

네트워크 2022.01.01

HTTP에 대하여

HTTP란? HyperText Transfer Protocol HTTP 메시지에 전송 가능한 것 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML(API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 HTTP사용 HTTP의 역사 HTTP/0.9: GET메서드만 지원, HTTP 헤더X HTTP/1.0: 메서드, 헤더 추가 HTTP/1.1: 가장 많이 사용, 우리에게 가장 중요한 버전 HTTP/2: 성능 개선 HTTP/3: TCP대신 UDP사용, 성능 개선 HTTP 특징 클라이언트 서버 구조 무상태 프로토콜( stateless), 비연결성 HTTP 메시지 단순함, 확장 가능 기반 프로토콜 TCP: HTTP/1.1, HTTP/2 UDP: HTTP/3 현재 HTTP/..

네트워크 2021.11.21

URI와 웹 브라우저

URI란? Uniform Resource Indentifier의 약자 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는데 필요한 정보 URI는 locator, name으로 분류될 수 있다. URI: Uniform Resource Locator URN: Uniform Resource Name URL,URN이란? URL - Loacator: 리소스가 있는 위치를 지정 URN - Name: 리소스에 이름을 부여 위치는 변할 수 있지만, 이름은 변하지 않는다. URN이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지않아 URL을 주로 사용함. URL 구성 scheme://[userinfo@]host[:port..

네트워크 2021.11.21

TCP (흐름제어/혼잡제어)

TCP 통신이란? 네트워크 통신에서 신뢰적인 연결방식 TCP는 기본적으로 unreliable network에서, reliable network를 보장할 수 있도록 하는 프로토콜 TCP는 network congestion avoidance algorithm을 사용 reliable network를 보장한다는 것은 4가지 문제점 존재 손실: packet이 손실될 수 있는 문제 순서 바뀜: packet의 순서를 바뀌는 문제 Congestion: 네트워크가 혼잡한 문제 Overload: receiver가 overload 되는 문제 흐름제어/혼잡제어란? 흐름제어(endsystem 대 endsystem) 송신 측과 수신 측의 데이터 처리 속도 차이를 해결하기 위한 기법 Flow Control은 receiver가 pa..

네트워크 2021.03.08

OSI 7계층

통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 단계만 수정할 수 있기 때문이다. 1)물리(Physical) 리피터, 케이블, 허브 등 단지 데이터 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간 즉, 데이터를 전송하는 역할만 진행한다. 2)데이터 링크(Data Link) 브릿지, 스위치 등 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할 Mac주소를 통해 통신한다. Mac주소를 부여하고 에러검출, 재전송, 흐름제어를 진행한다. 3)네트워크(Network) 라우터, IP 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 담당한다. 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달해준다. 라우팅,..

네트워크 2021.02.23

HTTP와 HTTPS

HTTP의 문제점 HTTP는 평문 통신이기 때문에 도청이 가능하다. 통신 상대를 확인하지 않기 때문에 위장이 가능하다. 완전성을 증명할 수 없기 때문에 변조가 가능하다. 위 세가지는 다른 암호화 하지 않은 프로토콜에서 공통되는 문제점들이다. TCP/IP는 도청 가능한 네트워크이다. TCP/IP구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야한다. 보안방법 1. 통신 자체를 암호화 SSL(Secure Socket Layer) or TLS(Transport Layer Security) 라는 다른 프로토콜을 조합함으로써 HTTP의 통신 내용을 암호화할 수 있다. SSL을 조합한 H..

네트워크 2021.02.10

TCP와 UDP의 비교

UDP UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)는 비연결형 프로토콜이다. IP 데이터그램을 캡슐화하여 보내는 방법과 연결 설정을 하지 않고 보내는 방법을 제공한다. UDP는 흐름제어, 오류제어 또는 손상된 세그먼트의 수신에 대한 재전송을 하지 않는다. UDP가 행하는 것은 포트들을 사용하여 IP프로토콜에 인터페이스를 제공하는 것이다. 종종 클라이언트는 서버로 짧은 요청을 보내고, 짧은 응답을 기대한다. 만약 요청 또는 응답이 손실된다면, 클라이언트는 time out 되고 다시 시도할 수 있으면 된다. 코드가 간단할 뿐만 아니라 TCP처럼 초기설정(initial setup)에서 요구되는 프로토콜보다 적은 메시지가 요구된다. UDP를 사용한 것들에는 DNS가 있다. 어떤..

네트워크 2021.02.09

HTTP의 GET과 POST비교

둘 다 HTTP프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 하지만 둘의 특징을 제대로 이해하여 기술의 목적에 맞게 알맞은 용도에 사용해야한다. GET 우선 GET방식은 요청하는 데이터가 HTTP Request Message의 Header부분의 url에 담겨서 전송된다. url상에서 ?뒤에 데이터가 붙어 request를 보내게 되는 것이다. 이러한 방식은 url이라는 공간에 담기기 때문에 데이터의 크기가 제한적이고, 데이터가 url에 그대로 노출되므로 보안이 필요한 데이터에 적절하지 않다. POST POST 방식의 request는 HTTP Message의 Body 부분에 데이터가 담겨서 전송된다. GET method에 비해 대용량의 데이터를 전송할 수 있고, 보안면에서 더 안전하다...

네트워크 2021.02.05