■ HTTP 프로토콜
※ 웹을 만들기 위해 사용되는 다양한 기술들
웹 서비스를 만들기 위해 다양한 기술들이 사용된다. 웹 표준이라고 불리는 HTML, Javascript, CSS는 프론트 엔드로 실행은 클라이언트 쪽에서 되지만, 서버 쪽에 저장된다. 이러한 데이터을 받아오는(웹 표준 데이터) 프로토콜을 HTTP 프로토콜이다. HTTPS는 HTTP에 보안 요소들을 추가한 프로토콜이다. ASP/ASP.NET, JSP, PHP 등은 벡엔드로 서버 쪽에서 실행되는 코드로 웹 서버 페이지를 만드는 기술들이다.
● HTTP 프로토콜의 특징
HyperText Transfer Protocol(하이퍼 텍스트 전송 프로토콜)로서, www에서 쓰이는 핵심 프로토콜로 문서의 전송을 위해 쓰인다. 오늘날 거의 모든 웹 애플리케이션에서 사용되고 있다. 음성, 화상 등 여러 종류의 데이터를 MIME로 정의하여 전송이 가능하다. HTTP의 특징은 Request / Response (요청/응답) 동작에 기반하여 서비스를 제공한다.
- HTTP 1.0 특징 : "연결 수립, 동작, 연결 해제" 의 단순함이 특징, 하나의 URL은 하나의 TCP 연결, HTML 문서를 전송 받은 뒤 연결을 끊고 다시 연결하여 데이터를 전송한다.
- HTTP 1.0 문제점 : 단순 동작(연결 수립, 동작, 연결 해제)이 반복되어 통신 부하 문제 발생
(HTTP/1.0)
위와 같이 HTTP 1.0의 문제점을 보완하기 위해 HTTP 1.1 버전이 만들어졌다. 요청하고 연결 종료하지 않고 요청하고 응답받고 이런 과정을 반복하고 마지막에 연결을 종료하는 방식이다.
(HTTP/1.1)
■ HTTP 요청 프로토콜
- Request Line
HTTP 메소드 요청 방식 | |
메소드 종류 | 설명 |
GET | Client가 Server로부터 문서를 읽어오려 할 때 사용 |
HEAD | Client가 문서가 아닌 문서에 대한 특정 정보를 원할 경우 사용 |
POST | Client가 Server에게 어떤 정보를 전송할 때 사용 |
※ URI
- Uniform Resource Identifier, 인터넷 상에서 특정 자원(파일)을 나타내는 유일한 주소
- 구조 : scheme* ://host[:port][/path][?query] / ex. http ://IP주소 :포트* /폴더이름/파일이름
* scheme는 내가 요청하는 형식을 지정하는 것(ftp or http 처럼 7계층 프로토콜 형식 지정)
* IP주소는 도메인주소를 사용하고 컴퓨터가 자동으로 IP 주소로 바꿔준다. 포트번호는 지정해주지 않고 웹 브라우저 사용 시 80번 또는 443번 포트를 알아서 사용해준다.
- Headers
여러가지 옵션들이 들어감
- Body
어떤 데이터를 요청할 때 보내는 추가적인 데이터 등이 들어감
■ HTTP 응답 프로토콜
- Status Line
상태 코드와 상태 문구는 하나의 쌍이다.
상태 코드 | |
상태 코드 종류 | 설명 |
100 ~ 199 | 단순한 정보 |
200 ~ 299 | Client의 요청이 성공 |
300 ~ 399 | Client의 요청이 수행되지 않아 다른 URL로 재지정 |
400 ~ 499 | Client의 요청이 불완전하여 다른 정보가 필요 |
500 ~ 599 | Server의 오류를 만나거나 Client의 요청 수행 불가 |
상태 코드 종류 | 상태 문구 | 설명 |
200 | OK | Client의 요청이 성공했다는 것을 나타낸다. |
403 | Forbidden | Client가 권한이 없는 페이지를 요청했을 때 |
404 | Not Found | Client가 서버에 없는 페이지를 요청했을 때 |
500 | Internal Servor Error | Server의 일부가 멈췄거나 설정 오류가 발생 |
503 | Service Unavailable | 최대 Session 수를 초과했을 때 |
■ HTTP 헤더 포맷
헤더 종류 | 설명 |
Content-Length | 메세지 바디 길이를 나타낼 때 쓰인다 |
Content-Type | 메세지 바디에 들어있는 컨텐츠 종류 (ex. HTML 문서는 text/html) |
Cookie | 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 한다 |
Host | 요청된 URL에 나타난 호스트명을 상세하게 표시 (HTTP 1.1은 필수) |
User-Agent | Client Program에 대한 식별 가능 정보를 제공 |
Server | 사용하고 있는 웹 서버의 소프트웨어에 대한 정보를 포함 |
Set-Cookie | 쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키 값을 브라우저가 서버에게 다시 보낼 때 사용한다. |
'프로그래밍 > 네트워크' 카테고리의 다른 글
[네트워크] NAT와 포트포워딩 (0) | 2024.06.25 |
---|---|
[네트워크] OSI 4계층 모델_TCP 프로토콜 (0) | 2024.06.24 |
[네트워크] OSI 4계층 모델_TCP, UDP 프로토콜 (0) | 2024.06.24 |
[네트워크] OSI 모델 3계층_IP 프로토콜 (0) | 2024.06.24 |
[네트워크] OSI 모델 3계층_ARP 프로토콜 (0) | 2024.06.24 |