사실 SSH 프로토콜은 여러 곳에서 접해 보았다. 이렇게 깃허브에서도 쓰고 있고, AWS 인스턴스를 만들 때도 쓰고 있다. 암호화해주는 기술이라는 건 어렴풋이 알고 있었지만, 한번도 어떤 프로토콜인지 자세히 알아보지 않았다 ... SSH 프로토콜에 대해 알아보자. SSH 프로토콜의 쓰임 데이터 전송 (깃허브 push pull 등) 원격 제어 (AWS 가상머신에 명령 내리기) SSH 프로토콜의 기능 SSH 프로토콜은 안전한 네트워크 서비스를 제공하기 위해 암호화를 사용한다. 암호화를 통해 클라이언트와 서버간의 연결을 네트워크 공격으로부터 보호할 수 있다. SSH 프로토콜이 사용하는 기술 대칭 암호화(Symmetric Encryption) 동일한 키로 암호화, 복호화 가능 클라이언트-서버 간 전체 연결을 암..
김영한님의 을 수강하고 요약한 내용입니다. 표현 헤더 요청, 응답 헤더 이름 설명 예시 Content-Type 표현 데이터의 형식 - text/html; charset=utf-8 - application/json - image/png Content-Encoding 표현 데이터의 압축 방식 - gzip Content-Language 표현 데이터의 자연 언어 - ko - en Content-Length 표현 데이터의 길이 (바이트) 협상(컨텐츠 네고시에이션) 헤더 클라이언트가 선호하는 표현 요청 요청 헤더 이름 설명 예시 Accept 클라이언트가 선호하는 미디어 타입 - text/html; charset=utf-8 - application/json - image/png Accept-Charset 클라이언트가..
김영한님의 을 수강하고 요약한 내용입니다. 1XX (Informational) 요청이 수신되어 처리중 거의 사용하지 않음 2XX (Successful) 요청 정상 처리 상태코드 설명 200 OK 요청 성공 201 Created 요청 성공해서, 새로운 리소스가 생성됨 202 Accepted 요청이 접수되었으나, 처리가 완료되지 않았음 204 No Content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 ex) 문서 편집기 저장버튼 3XX (Redirection) 요청을 완료하려면 추가 행동이 필요 웹 브라우저는 3XX 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) 상태코드 설명 종류 300 Multiple Choices -..
김영한님의 을 수강하고 요약한 내용입니다. API URI 설계 리소스와 행위를 분리 회원을 등록, 수정, 조회 → 행위 회원 그 자체 → 리소스 회원이라는 리소스만 식별하면 된다. 회원 리소스를 URI에 매핑 HTTP 메서드 메서드 기능 서버에 전달하고 싶은 데이터 안전 멱등 캐시 가능 GET - 리소스 조회 - query 를 통해 전달 - 메시지 body 로 데이터를 전달할 수 있지만, 권장 X ⭕️ ⭕️ ⭕️ POST - 요청 데이터 처리 (주로 리소스 등록) - 메시지 body 를 통해 전달 ❌ ❌ ⭕️ PUT - 리소스 완전히 대체, 없으면 생성 (덮어쓰기) - 클라이언트가 리소스 위치를 알고 URI 지정 - 메시지 body 를 통해 전달 ❌ ⭕️ ❌ PATCH - 리소스 부분 변경 - 메시지 b..
김영한님의 을 수강하고 요약한 내용입니다. 모든 것이 HTTP HyperText Transfer Protocol → 원래는 HTML을 전송하는 프로토콜이었으나… 이제는 모든 것을 담아서 전송한다. HTML, TEXT 이미지, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/1.1 가장 많이 사용, 우리에게 가장 중요한 버전 RFC7230~ 버전 문서를 참고하자. HTTP/2 성능 개선 HTTP/3 TCP 대신 UDP 사용 성능 개선 HTTP의 특징들 클라이언트 서버 구조 클라이언트 → 서버 request 서버 → 클라이언트 response Stateful, Stateless 상태 유지(Sta..
주소창에 URI를 입력하면 어떤 일이 생길까? 주소창에 URI를 입력하면 다음과 같은 일이 진행된다. 1. 웹 브라우저가 DNS 조회, PORT 번호 인식 DNS(www.google.com)를 조회하여 IP를 알아낸다 http, https는 포트번호 생략 2. 웹 브라우저가 HTTP 요청 메시지 생성 GET / HTTP/1.1 Host: www.google.com 3. HTTP 요청 메시지 전송 앞에서 웹 브라우저가 생성한 HTTP 메시지가, SOCKET 라이브러리를 통해 전달된다. TCP/IP 연결 (IP, PORT를 이용해 구글 서버와 연결한다.) 데이터 전달 TCP/IP 패킷을 생성한다. 생성한 패킷을 인터넷망으로 구글 서버에게 전달 4. 구글 서버가 HTTP 요청 메시지를 받음 5. 구글 서버가 ..
리다이렉트 URI 카카오 소셜로그인 구현을 하다 보면 redirect uri를 입력해줘야 한다. 프론트에서는 KAKAP API server에 인가 코드를 요청하고, redirect uri로 인가코드를 받는다. 그리고 이 받은 코드를 백으로 전달해서 JWT를 받게 된다. 그런데 URL도 아니고, URI란 무엇일까? URI vs URL vs URN URI → 로케이터(locator), 이름(name) 또는 둘 모두를 사용할 수 있다. URI(Uniform Resource Identifier) Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원. URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는데 필요한 정보 URL(Uniform Resource Locator) L..
프로토콜이란? 두 개체 사이의 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구 ⏩️ 개체 사이의 통신 시 교환되는 데이터의 형식을 정의하는 규칙의 집합 *개체: 라우터, 서버, 모뎀 처럼 데이터 통신이 가능한 주체 프로토콜의 주요 요소 무엇을, 어떻게, 언제 통신할 것인가를 규정 구문(Syntax) 무엇을 데이터의 형식, 부호화(Unicode, ASCII), 신호크기(0과 1의 전압 세기와, 어떻게 표현할지) 를 정함 의미(Semantics) 어떻게 데이터의 각 항목이 무엇을 뜻하는지를 어떻게 해석할 것인가? 오류 관리를 위한 제어 정보 등 Timing 언제 전송속도, 메시지의 순서를 정함 프로토콜의 종류 계층 프로토콜 이름 Application layer HTTP, HTTPS, FTP, DNS..