일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- VPN 개념
- 암호화 알고리즘
- DoS 종류
- 스트림 암호
- 파일 시스템
- ZTNA
- 암호화
- des
- VPN 뜻
- 대칭키 vs 공개키
- 오용탐지
- 암호학
- 데이터베이스 구조
- DDoS 종류
- RSA
- 가상 사설 네트워크
- AES
- stream cypher
- 관계 데이터 모델
- 객체 데이터 모델
- DoS DDoS
- dbms
- VPN
- 파일시스템 DBMS
- block cypher
- 데이터베이스
- 공개키 비밀키
- 파일시스템 vs DBMS
- ZTN
- db
- Today
- Total
RavenSong's CS log
HTTP 개념 및 구조 본문
HTTP(HyperText Transfer Protocol)
하이퍼텍스트 전달 프로토콜로 클라이언트 - 서버 간 통신을 위해 사용되는 프로토콜이다. HTTP를 통해 주고받는 대표적파일로는 HTML 파일이 있다
HTTP 특징
1. 클라이언트/서버 구조
-Request/Response 구조 통신
-클라이언트는 서버에게 Request를 보내고, 서버는 클라이언트에게 Response를 보낸다
-위 과정은 모두 HTTP 메시지 형식으로 주고받는다
2. 무상태성(Stateless)
-서버는 클라이언트의 상태를 저장하지 않는다
-때문에 클라이언트에서 정보를 기억해서 매 요청마다 서버에게 이전 상태까지 모두 포함해서 보낸다
-> 이로인해 쿠키 등장
-클라이언트에서 매 요청마다 이전 상태를 기억해 보내야하는 단점이 있지만 그만큼 서버에서 클라이언트별 전용 서버나 연결을 유지하지 않아도되어서 서버의 부하가 줄어
3. 비연결성(Connecrtionless)
-요청과 응답이 한번 이루어지면 연결을 끊는다
-일정 시간 내 에 요청이 없으면 연결을 끊는다
-> 세션 등장
-요청과 응답의 정보를 유지하지 않기때문에 서버의 부하가 줄어들지만, 새로운 연결을 맺는데 추가적 시간 발생
HTTP Request message
Request message는 3가지 부분으로 나뉘어있다
1. Start Line
-HTTP message의 시작라인으로 세 가지 부분으로 구성되어있다
- HTTP method: 요청이 무엇을 의미하는지 뜻하는 GET, POST, PUT, DELETE등이 있다. GET은 존재하는 자원에 대한 요청, POST는 새로운 자원 생성, PUT은 존재하는 자원에대한 변경, DELETE는 존재하는 자원에대한 삭제를 뜻한다
- Request target: HTTP Request가 전송되는 목표 주소
- HTTP version: HTTP 버전에따라 method의 구조가 달라지기 때문에, Start Line에 HTTP 버전을 명시해야함
2. Headers
-Request에 대한 추가정보를 포함하는 부분으로 네 종류로 나뉜다
- General header: 요청과 응답에 모두 사용되는 헤더지만 바디에서 최종적으로 전송되는 데이터와는 관련이 없음
- Request header: 요청 클라이언트에대한 부가적인 정보로 사용되는 헤더로, 패치될 리소스나 클라이언트 자체에 대한 자세한 정보를 포함
- Response header: 응답 서버에대한 부가적인 정보로 사용되는 헤더로, 위치 또는 서버 자체에 대한 정보(이름, 버전 등)를 포함
- Entity header: 컨텐츠 길이나 MIME 타입과 같이 엔티티 바디에 대한 자세한 정보를 포함
3. Body
- HTTP Request가 전송하는 데이터를 담고 있는 부분으로, 전송하는 데이터가 없다면 body 부분은 비어있다. 보통 post 요청일 경우, HTML 폼 데이터가 포함되어 있다.
HTTP Response message
Response message 또한 3가지 부분으로 나뉘어있다
1. Status Line
-HTTP Response의 상태를 간략하게 나타내는 부분으로 3가지로 나뉘어있다
- HTTP version: version에 따라 Response 메시지 구조나 데이터가 다를 수 있어서 version을 명시해야한다
- Status code: 대표적으로 200과 404가 있는데, 200은 요청 처리의 성공을 뜻하고 404는 요청에 대한 결과를 찾을 수 없다를 의미한다
- Status text: 응답상태를 text로 표현해주는 부분으로 요청에 대한 응답이 404라면 Status text는 'Not found' 이다
2. Headers
- Request의 headers와 동일한 구조이다 하지만 Request에서만 사용되는 header 값들이 있다. 예를들어 User-Agent 대신에 Server헤더가 사용된다
3. Body
Request의 body와 일반적으로 동일하다 Request와 마찬가지로 클라이언트측으로 보낼 데이터가 없다면 body는 비어있는 상태가 된다
'네트워크' 카테고리의 다른 글
Firewall / IDS / IPS 개념 및 차이점 (0) | 2024.04.15 |
---|---|
VPN 개념 및 작동방식 (0) | 2024.04.05 |
OSI 7 계층 개념 및 특징 (2) | 2024.04.02 |
DoS/DDos 공격 종류 및 작동 방식 (2) | 2024.04.01 |
IPSec 개념정리 (0) | 2024.03.31 |