CS/Network 22

Http와 REST

1. Http 프로토콜 HTTP 메시지 프로토콜은 반드시 request/response의 한쌍으로 구성되어있다. 그리고 request와 response는 각각 header와 body로 이루어져 있고 header와 body 사이에는 반드시 한 줄이 띄어져야 한다. Http는 반드시 먼저 요청을 보내야지 response를 받기 때문에 카카오톡과 같이 서버로부터 데이터를 먼저 받는 것은 불가능하다. 먼저 받으려면 FCM푸시나 소켓통신을 통해서 해결해야 한다. 1) Request 헤더에는 : 리퀘스트라인(리퀘스트에 사용하는 메소드, URI), 상태라인, 헤더필드, 엔티티 헤더필드가 있다. 1) Http method http method는 request 헤더의 첫 번째 줄 첫 번째에 명시되어 있다. method의..

CS/Network 2022.12.10

● 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)

1.SOP(Same Origin Policy) 1)동일 출처 정책(same-origin policy)은 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식이다. 동일 출처 정책은 동일 출처에서 오지 않은(다른 출처에서 온) 잠재적으로 해로울 수 있는 요청을 분리함으로써 공격받을 수 있는 경로를 차단한다. (예를 들어 특정 사이트에 내가 로그인하면서 토큰을 발급 받을 때 해커가 그 토큰을 가로채서 다른 요청을 서버에 보낸다면 서버 측에서 다른 출처로 인식 되기 때문에 요청을 거부하게 되는 것이다.) ex) nginx(웹서버)로 Vue(프론트) 와 내장 tomcat(WAS) Springboot(Api Server) 간 통신의 경우 생각 출처란? ..

CS/Network 2022.10.11

CURL(Client URL)

CURL(Client URL)이란? (서버와 통신할 수 있는 커맨드 명령어 툴) 다양한 통신 프로토콜을 이용해 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 툴이라고 보면된다. 클라이언트에서 커맨드라인(cmd)을 통해서 간단하게 웹 브라우저처럼 데이터를 전송할 수 있는 툴이다. cURL은 리눅스 배포판에 대부분 기본으로 포함돼 있다. url을 가지고 할 수 있는 것들은 다할 수 있다. 예를 들면, http 프로토콜을 이용해 웹 페이지의 소스를 가져온다거나 파일을 다운받을 수 있다. ftp 프로토콜을 이용해서는 파일을 받을 수 있을 뿐 아니라 올릴 수도 있다. 심지어 SMTP 프로토콜을 이용하면 메일도 보낼 수 있다 RestAPI 서비스의 성능테스트를 위해 사용하곤 한다. CURL 설치 : ..

CS/Network 2022.09.15

IP 주소 묶는 법 CIDR

CIDR (Classless Inter Domain Routing) Private Network (사설망) 하나의 Public IP를 여러 기기가 공유할 수 있는 방법 하나의 망에는 private ip를 부여받은 기기들과 gateway로 구성한다. 각 기기는 인터넷과 통신시 Gateway를 통해 통신한다. Private IP는 지정된 대역의 아이피만 사용 가능하다. 181.227.3.33 - public IP CIDR는 IP는 주소의 영역을 여러 네트워크 영역으로 나누기 위해 IP를 묶는 방식 여러 개의 사설망을 구축하기 위해 망을 나누는 방법 Classless Classful 10.88.135.144/28이면 28비트까지가 네트워크 주소이다. host 주소가 모두 0일 때부터 주황색 부분 모두 1일 때..

CS/Network 2022.06.01

소켓 프로그래밍

소켓 프로그래밍이란? 소켓을 이용한 통신 프로그래밍을 뜻한다. 소켓이란 프로세스 간의 통신에 사용되는 양쪽 끝단을 의미한다. ex) 전화기 자바에서는 java.net패키지를 통해 소켓 프로그래밍을 지원하는데, 소켓통신에 사용되는 프로토콜에 따라 다른 종류의 소켓을 구현하여 제공한다. 1. TCP와 UDP tcp는 연결기반, 연결 후 통신, 1:1 통신방식이다. 데이터의 경계를 구분 안 하고 신뢰성 있는 데이터를 전송한다. 데이터의 전송 순서가 보장되고 데이터의 수신 여부를 확인한다. 관련 클래스로는 Socket, ServerSocket이 있다. 반면, udp는 비연결기반이며, 연결 없이 통신이 되며, 1:1, 1:n, n:n 통신방식이다. 데이터의 경계를 구분하고(datagram) 신뢰성 없는 데이터를 ..

CS/Network 2022.04.21

네트워크 확인을 위한 명령어

갑자기 서버가 정상적으로 통신되지 않을 때 1. ping ping은 상대방 호스트가 살아 있는지 확인하는 것이 이 명령어의 최대목표이지만 두 호스트간의 통신을 위한 경로, 즉 라우팅 경로가 정상적으로 구성되어 있는지도 함께 체크할 수 있다. ping 명령어 : ping [옵션] 목적지_IP 주소 여러가지 옵션을 사용해 ping을 체크하는 횟수, 데이터크기 등을 지정할 수 있다. 별도 옵션 없이 ping을 체크하는 방법은 '기본 ping'이라고 하고 옵션을 사용해 ping을 체크하는 방법을 '확장 ping'이라고 한다. 확장 ping 중 특정 옵션을 사용할 때 ping을 체크하는 출발지 IP를 지정할 수도 있다. 윈도에서 옵션 1) -n : ping을 보내는 패킷을 몇 번 보내고 종료할 것인지 지정(디폴트..

CS/Network 2022.03.13

영카트 호스팅

1. IDC https://kdtidc.kr/wp/idc/ IDC란? – 한국데이터통신 IDC란? Categories / DASHBOARD By David Lee 서버 컴퓨터와 네트워크 회선 등을 제공하는 시설로, 서버를 한 데 모아 집중시킬 필요가 있을 때 설립한다 IDC는 ‘인터넷 데이터 센터’(Internet Data Center)의 준 kdtidc.kr 2. iptable https://linuxstory1.tistory.com/entry/iptables-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%B0%8F-%EC%98%B5%EC%85%98-%EB%AA%85%EB%A0%B9%EC%96%B4 iptables 개념 및 명령어 ============== ..

CS/Network 2022.02.19

NAT, checksum

1. NAT (Network Address Translation): https://velog.io/@zigje9/NAT%EB%9E%80 NAT란? Network Address Translation 알아보기 velog.io NAT는 다양한 기술과 방법이 존재하지만 가장 많이 사용되는 경우는 사설 IP -> 공인 IP로 전환하는 경우이다. 가. NAT/PAT의 용도와 필요성 1) IPv4 주소 고갈문제의 솔루션으로 NAT가 사용된다. 2) 보안을 강화하는 데 사용한다. 외부와 통신할 때 내부 IP를 다른 IP로 변환해 통신하면 사내 IP 주소체계를 숨길 수 있다. 3) IP 주소 체계가 같은 두 개의 네트워크 간 통신을 가능하게 해준다. 나. NAT/PAT의 차이 PAT : PAT는 여러 개의 IP가 하나의..

CS/Network 2022.02.14