깃허브 기술관련 자료 인쇄를 위한 정리 네트워크 및 보안

깃허브 기술관련 자료 인쇄를 위한 정리 네트워크 및 보안

TCP와 UDP OSI 7계층에서 전송계층Transport layer에 속하는 데이터 전송 프로토콜입니다. 여기선 필요한 것만 살펴보고 깊게는 들어가지 않습니다. 데이터가 반드시 전달되는 것을 보장하는 프로토콜로 다음 특징들을 갖는다.


API란 무엇인가?
API란 무엇인가?

API란 무엇인가?

Application Programming Interface의 약자로 구글 맵 API, 카카오 비전 API 등 기존에 있는 응용 프로그램을 통하여 데이터를 제공받거나 기능을 사용하고자 할 때 활용하는 인터페이스 및 규격 을 말합니다. API는 프로그래밍 언어, 운영체제 등에서도 사용되는 범용적인 용어입니다. 따라서, REST API라는 것은 REST 원칙을 적용하여 서비스 API를 설계한 것을 대화하며 대부분의 서비스가 REST API를 제공합니다.

비연동 지향 Connectionless
비연동 지향 Connectionless

비연동 지향 Connectionless

클라이언트가 서버에게 리소스를 요청한 후 응답을 받으면 연결을 끊어버리는 특징입니다. 연결을 유지하게 되면 서버에 많은 부담을 줄 수 있다고 해서 상당히 많은 클라이언트에게 요청을 받는 웹 서버의 경우 응답을 처리했으면 연결을 끊는다. 이로 인해 서버의 부담을 줄일 수 있지만, 리소스를 요청할 때마다. 연결해야 하는 오버헤드 비용이 발생합니다. 이를 해결하기 위해선, 요청 헤더의 Connection keepalive 속성으로 지속적 연동 상태Persistent connection를 유지할 수 있어요.

즉, 요청을 할 때마다. 연결하지 않고 기존의 연결을 재활용하는 방식입니다. HTTP 1.1 부턴 지속적 연동 상태가 기본이며 이를 풀기 위해선 명시적으로 요청 헤더를 수정해야 합니다.

URLUniform Resource Locator
URLUniform Resource Locator

URLUniform Resource Locator

해당 위치에서 어떠한 방식으로 리소스를 얻어낼 것인가에 대한 정보를 포함합니다. 현재 내가 거주하고 있는 기숙사를 대학교라고 가정한다면, 그 주소는 다음과 같이 쓸 수 있어요. 경북 포항시 북구 흥해읍 한동로 558, 한동대학교 벧엘관 303호 이곳에서 이 방에 나 혼자 산다면 나라는 자원에 대한 하나의 지시자가 됩니다. 또한 이는 내가 거주하고 있다는 것을 간접적으로 알려주기 때문에 식별의 역할도 하고 있습니다.

그러나 룸메이트가 오게 되면 나라는 자원을 오로지 지시하는 기준은 달라지게 됩니다. 따라서, 자원의 위치가 바뀔 수 있다고 할 수 있는 것입니다. 이와 유사한 문제점은 URN의 출현을 야기시켰다.

프록시 서버

프록시 서버는 클라이언트와 서버 사이에서 정보교환을 도와주는 서버입니다. 리소스를 요청하고자 하는 서버의 AccessControlAllowOrigin 속성을 수정할 수 없는 경우에 굉장히 유용합니다. 프록시 서버가 현실 서버에 요청을 보내서 받아온 다음 그걸 AccessControlAllowOrigin 설정을 적절히 하여 클라이언트에게 돌려주는 방법입니다.

Apache나 Nginx와 같은 웹서버에서 프록시 기능을 활성화할 수 있고 CRA(Create-React-App)를 사용하고 있다면 package.json 의 proxy 값을 설정하여 프록시 서버 기능을 활성화할 수 있어요.

단, 이 방법의 경우 서버를 한단계 더 거치기 때문에 기존의 요청보다. 느리다는 단점이 있습니다.

Method

클라이언트가 서버에 요청방법을 정의하는 것으로 주어진 리소스에 수행하길 희망하는 행동을 나타낸다. GET 서버에게 조회할 리소스를 요청합니다. READ, 조회 POST 서버에게 body에 생성할 데이터를 삽입하여 전송합니다. CREATE, 생성 PUT 서버에게 에 수정할 데이터를 삽입하여 전송합니다. UPDATE, 편집 DELETE 서버에게 삭제할 리소스를 요청합니다. DELETE, 삭제 PATCH PUT과 비슷하지만 일부만 수정해야하는 점에서 다릅니다.

CSRFCross Site Request Forgery, 사이트간 요청변조

XSS와 CSRFXSS(Cross Site Scripting, 사이트간 스크립팅)

저장 XSS : 웹사이트에 취약점이 있는 웹 서버에 스크립트를 저장시켜서 해당 웹사이트를 요청하는 사용자로 하여금 스크립트를 실행하게 하는 기법입니다. 반사 XSS : 검색을 사용할 때 결과가 없으면 브라우저에서 입력한 값을 문서에 포함하여 응답하는데 이를 사용하여 스크립트를 실시하는 기법으로 악성 URL을 배포하여 클릭하도록 유도하는 방법을 사용합니다.

DOM 기반 XSS 공격 스크립트가 DOM 생성의 일부로 실행되고 공격하는 기법으로 반사 XSS와 비슷하게 악성 URL을 배포하여 클릭하도록 유도합니다.

자주 묻는 질문

API란 무엇인가?

Application Programming Interface의 약자로 구글 맵 API, 카카오 비전 API 등 기존에 있는 응용 프로그램을 통하여 데이터를 제공받거나 기능을 사용하고자 할 때 활용하는 인터페이스 및 규격 을 말합니다. 좀 더 구체적인 사항은 본문을 참고하시기 바랍니다.

비연동 지향

클라이언트가 서버에게 리소스를 요청한 후 응답을 받으면 연결을 끊어버리는 특징입니다. 좀 더 구체적인 사항은 본문을 참고하시기 바랍니다.

URLUniform Resource

해당 위치에서 어떠한 방식으로 리소스를 얻어낼 것인가에 대한 정보를 포함합니다. 구체적인 내용은 본문을 참고 해주시기 바랍니다.