본문 바로가기

전체 글377

[네트워크] HTTP Method (GET/POST/PUT/PATCH/DELETE, GET과 POST 차이) 목차 HTTP와 HTTP 메서드 HTTP 메서드 GET POST PUT PATCH DELETE GET과 POST 차이 1. HTTP와 HTTP 메시지 HTTP는 웹 상에서 데이터를 요청하거나 응답하기 위해 사용되는 프로토콜이다. 가장 큰 특징은 클라이언트 - 서버 구조를 띄고 있다는 것이며, OSI 7계층 중 애플리케이션 계층에 속해 80번이나 443번 포트를 이용하고 있다. 클라이언트 - 서버 구조에서 클라이언트는 데이터를 요청하는 쪽이고, 서버는 데이터를 응답하는 쪽이다. 클라이언트는 HTTP Request Message의 바디에 데이터를 담아 요청하고, 서버는 HTTP Request Message의 바디에 데이터를 담아 응답한다. 2. HTTP 메서드 HTTP 메서드는 클라이언트가 데이터를 어떤 방.. 2024. 2. 16.
[네트워크] HTTPS란? (HTTP와 HTTPS 비교, SSL 암호화 방식, SSL HandShake 과정, HTTPS 동작 과정) 목차 HTTP란? HTTPS란? HTTP와 HTTPS 비교 SSL 인증서 SSL 암호화 방식 : 대칭키 + 공개키 SSL 동작 방식 : SSL Handshake HTTPS 동작 방식 1. HTTP란? HTTP는 HyperText Transfer Protocol의 약자로, OSI 7계층에서 애플리케이션 계층에서 동작하는 프로토콜이다. 웹 상에서 데이터를 송수신하기 위해 사용되며, 80번 포트를 사용하고 있다. 클라이언트가 서버에게 데이터를 요청할 때 HTTP 요청을 보내고, 서버는 클라이언트가 요청한 데이터를 담아 HTTP 응답을 보냄으로써 통신한다. 하지만 HTTP를 이용해 데이터를 주고받을 때, 클라이언트가 서버에게 요구한 정보나 로그인/회원가입 시에 필요한 인증 정보 등이 그대로 노출된 상태로 전달된.. 2024. 2. 15.
[네트워크] HTTP란? (HTTP 개념 및 특성, HTTP 버전 별 특징, HTTP Request/Response 헤더, HTTP 상태 코드) 목차 HTTP 개념 및 특성 HTTP 버전 HTTP 메시지 구조 HTTP Request 메시지 HTTP Response 메시지 HTTP 상태 코드 1. HTTP 개념 및 특성 HTTP는 HyperText Transfer Protocol의 약자로, OSI 7계층에서 애플리케이션 계층에서 동작하는 프로토콜이다. 웹 상에서 데이터를 송수신하기 위해 사용되며, 80번 포트를 사용하고 있다. 클라이언트가 서버에게 데이터를 요청할 때 HTTP 요청을 보내고, 서버는 클라이언트가 요청한 데이터를 담아 HTTP 응답을 보냄으로써 통신한다. (특성) 클라이언트 - 서버 구조 웹 상에서 데이터를 요청하는 쪽을 클라이언트, 데이터를 응답하는 쪽을 서버라고 한다. 두 개의 컴퓨터를 클라이언트와 서버로 구분한다는 것은 데이터 .. 2024. 2. 15.
[네트워크] IP주소와 MAC 주소란? (IP 주소 형식, MAC 주소 형식, IPv4/IPv6, IP 주소가 필요한 이유, MAC 주소가 필요한 이유, IP주소와 MAC주소 비교) 목차 IP 주소란? IP 주소 형식 IP 주소 클래스 IPv4와 IPv6 MAC 주소란? MAC 주소 형식 IP 주소가 필요한 이유 MAC 주소가 필요한 이유 IP 주소와 MAC 주소 비교 1. IP 주소란? IP 주소는 컴퓨터 간 통신을 할 때 네트워크 상에서 각 컴퓨터를 찾아갈 수 있는 주소이다. 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 요청하거나 응답할 때 네트워크 상에서 최적의 경로를 찾고 데이터가 전달되어야 하는데, 이때 IP 주소를 이용해 라우팅 한다. 2. IP 주소 형식 IP 주소는 IPv4 기준으로 12개의 숫자로 이루어져 있다. 점(.)으로 구분된 4개의 그룹으로 구성되며, 각 그룹은 0 ~ 255 범위의 값을 가진다. 이론상으로는 0.0.0.0 ~ 255.255.255.255까지 약 .. 2024. 2. 15.
[네트워크] TCP의 오류제어 흐름제어, 혼잡제어 (데이터링크 계층에서의 오류제어, 흐름제어와 차이) 목차 TCP란? 오류제어와 방법 체크섬 ARQ : Automatic Repeat reQuest 흐름제어와 방법 Stop And Wait Sliding Window 혼잡제어와 방법 AIMD : Additive Increase / Multiplicative Decrease Slow Start 데이터링크 계층에서의 오류 제어, 흐름제어와 차이 1. TCP란? TCP 프로토콜은 OSI 7계층 중 전송 계층에서 사용되는 프로토콜로, 컴퓨터 간의 데이터를 전송할 때 TCP 연결을 이뤄 데이터에 대한 신뢰성을 보장한다. 3-way handshake 과정을 통해 연결된 두 엔드포인트 사이의 오류제어, 흐름제어, 혼잡제어 기능을 제공한다. ** 전송 계층에서의 데이터 전송 단위(PDU)는 세그먼트이다. 2. 오류제어 네.. 2024. 2. 15.
[네트워크] 데이터링크 계층, CRC 기반 오류제어란? (오류 검출 방법, 오류 복구 방법, ARQ, FEC) 목차 오류제어란? 오류 검출 방법 패리티 검사 (Parity Bit Check) 블록 합 검사 (2d Parity Bit Check) CRC 체크썸 오류 복구 방법 Automatic Repeat reQuest (ARQ) Forward Error Correction (FEC) 1. 오류제어란? 데이터링크 계층은 OSI 7계층 중 물리 계층 다음인 2계층에 해당하며, 전기적 신호로부터 변환된 데이터에 에러가 존재하는지 확인한다. 따라서 오류제어와 흐름제어 기능을 제공해 포인트 투 포인트 간의 신뢰성을 보장한다. 에러를 확인하는 방법에는 패리티 검사, 블록 합 검사, CRC, 체크썸 등이 존재하며, 그중 CRC 기반 오류제어를 채택해 사용 중이다. ** 데이터링크 계층에서 전송 단위(PDU) : 프레임 2. .. 2024. 2. 15.
[JAVA] BOJ 백준 16930번 - 달리기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/16930 16930번: 달리기 진영이는 다이어트를 위해 N×M 크기의 체육관을 달리려고 한다. 체육관은 1×1 크기의 칸으로 나누어져 있고, 칸은 빈 칸 또는 벽이다. x행 y열에 있는 칸은 (x, y)로 나타낸다. 매 초마다 진영이는 www.acmicpc.net 2. 내가 푼 방법 시간 초과가 관건인 BFS 문제이다. 이동할 수 있는 체육관의 위치를 큐에 담을 때 중복을 제거하는 것이 중요하다. 같은 방향으로 1 ~ K 만큼을 이동할 수 있다는 것은, 달리는 중간에 방향을 꺾을 수 없다는 의미이다. 따라서 벽에 부딪히거나 범위를 벗어나면 break; 문을 통해 K번의 for문을 빠져나.. 2024. 2. 13.
[JAVA] BOJ 백준 2186번 - 문자판 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2186 2186번: 문자판 첫째 줄에 N(1 ≤ N ≤ 100), M(1 ≤ M ≤ 100), K(1 ≤ K ≤ 5)가 주어진다. 다음 N개의 줄에는 M개의 알파벳 대문자가 주어지는데, 이는 N×M 크기의 문자판을 나타낸다. 다음 줄에는 1자 이상 80자 이하의 www.acmicpc.net 2. 내가 푼 방법 DP 알고리즘을 이용하며, 만들 수 있는 단어의 개수를 저장해둠으로써 가지치기할 수 있다. 문자열 인덱스 위치에 따라 만들 수 있는 단어를 카운팅하기 위해 dp를 3차원 Integer 배열로 선언했다. 우선 initDP 함수에서 문자열의 0번 인덱스와 같은 문자일 때 1로 초기화하.. 2024. 2. 13.
[네트워크] TCP 3-way handshake와 4-way handshake (TCP 연결 과정, TCP 연결 종료 과정, TCP 헤더 Control Flag 정리, TCP 패킷을 이용한 네트워크 취약점) 목차 TCP란? TCP 연결 과정 : 3-way handshake TCP 연결 종료 과정 : 4-way handshake TCP 헤더, Control Flag 정리 TCP 패킷을 이용한 네트워크 취약점 1. TCP란? TCP는 클라이언트와 서버 사이의 연결을 지향하고, 오류 및 흐름 제어 등 신뢰성을 제공하는 전송 계층 프로토콜이다. 데이터를 주고받기 전, 클라이언트와 서버를 연결하기 위해 3단계에 거쳐 패킷을 교환하고 확인하는 작업이 이뤄지는데, 이 과정을 3-way handshake라고 한다. 반대로 클라이언트와 서버 사이의 연결을 종료하기 위해 4단계에 거쳐 패킷 교환 및 확인 작업이 이뤄지며, 이 과정을 4-way handshake라고 한다. 2. TCP 연결 과정 : 3-way handshake.. 2024. 2. 12.