HTTP 메서드(GET vs POST)
GET 메서드
- 데이터를 URL의 일부(query string)로 전송한다.
- URL 길이는 브라우저, 서버에 따라 제한이 있으므로 전송 가능 데이터 양이 제한된다.
POST 메서드
- 데이터를 요청 본문(body)에 포함하여 전송한다.
- Content-Length와 Content-Type 같은 추가적인 헤더 정보가 필요하다.
HTTP 응답 코드(404, 500)
404 Not Found
- 서버가 요청된 리소스를 찾을 수 없을 때 반환되는 응답 코드
500 Internal Server Error
- 서버가 요청을 처리할 수 없을 때 반환되는 응답 코드
파일 디스크립터(File Descriptor)
- 운영체제에서 관리하는 정수형 고유 식별자로, 열린 파일이나 스트림을 식별하는 데 사용된다.
- 이를 통해 다양한 입출력 리소스를 일관적 방식으로 관리할 수 있다.
- 예를 들어, 파일을 열면 운영체제가 해당 파일을 가리키는 파일 디스크립터를 프로그램에게 제공한다.
- UNIX/Linux 시스템의 기본 디스크립터
- 0 (표준 입력)
- 1 (표준 출력)
- 2 (표준 에러)
TCP의 3-Way Handshake
3-Way Handshake는 TCP의 연결 설정 과정에서 사용되는 절차를 말한다. 이 과정은 다음과 같은 세 단계로 이루어진다.
- 클라이언트가 서버에 SYN(Synchronize) 패킷을 보내 연결 요청을 한다.
- 서버는 SYN-ACK(Synchronize-Acknowledge) 패킷으로 응답하여 연결 요청을 받았음을 알리고, 자신도 연결 준비가 되었음을 나타낸다.
- 클라이언트는 ACK(Acknowledge) 패킷을 서버에 보내 연결을 확정한다.
TCP와 UDP의 패킷 손실 대처 방법
TCP의 패킷 손실 대처
- 패킷 손실 발생 시 자동으로 재전송을 시도한다.
- 수신자는 받은 패킷에 대해 확인 응답(ACK)을 보낸다.
- 송신자는 ACK를 받지 못한 패킷을 재전송한다.
UDP의 패킷 손실 대처
- 패킷 손실에 대해 자체적으로 대처하지 않는다.
- 확인 응답이나 재전송 기능이 따로 존재하지 않는다.
- 패킷 손실이 발생하면 애플리케이션 레벨에서 따로 처리해야 한다.
C코드 (포인터) 문제 해결하기
#include <stdio.h>
int main(int argc, char *argv[]) {
int x = 1, z[2] = {10, 11};
int *p = NULL;
p = &x;
*p = 10;
p = &z[1];
*(&z[0] + 1) += 3;
printf("%d, %d, %d\n", x, z[0], z[1]);
return 0;
}
문제 요구사항
해당 코드의 출력 구하기
문제 해석
- p는 정수형 변수 x의 주소를 가리키고 있는 상태에서 역참조된다.
- 이후 p는 정수형 배열 z의 두번째 요소 주소를 가리키게 되지만 사용되지는 않는다.
- *(&z[0] + 1) = *(&z[1])
정답 출력
10, 10, 14
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] CPU Scheduling 알고리즘 핵심 정리 (0) | 2025.05.09 |
---|---|
[CS기초] Process와 Thread 핵심 정리 (0) | 2025.05.09 |
[CS기초] 8주차 개념 정리 (1) | 2025.05.06 |
[CS기초] HTTP (요청/응답, 헤더, 메서드, 상태코드, HEAD 메서드) 핵심 정리 (0) | 2025.05.05 |
[CS기초] CGI / WebServer / MIME Type 핵심 개념 정리 (0) | 2025.05.05 |