클라이언트(컴퓨터, 스마트폰...)와 서버(서버 컴퓨터...)가 데이터를 주고받는 활동을 네트워킹(Networking)이라 부릅니다.
즉, 컴퓨터(스마트폰...)끼리 네트워크망을 통해 데이터를 주고받는 활동 및 행위
클라이언트와 서버가 네트워크망을 통해 데이터를 주고받기 위해 사용하는 여러가지 통신 규약(프로토콜)의 모음을 TCP/IP 라 부릅니다. 네트워크의 모델 - TCP/IP 4계층 모델
TCP/IP에는 여러 종류의 프로토콜이 존재하지만, 개발자 입장에서 눈여겨봐야 할 프로토콜은 응용계층의 HTTP 프로토콜입니다.
HTTP(Hypertext Transfer Protocol)는 네트워크망에서 데이터를 주고받기 위해 서버/클라이언트 모델을 따르는 프로토콜입니다.
초기에는 하이퍼 문서를 전송하는 목적으로 사용되었지만 현재는 문서, 이미지, 영상, 음성, JSON 등 모든 형태의 데이터를 전송할 수 있습니다.
www에서 쓰이는 핵심 프로토콜로 문서의 전송을 위해 쓰이며, 오늘날 거의 모든 웹, 앱에서 사용되고 있습니다.
HTTP 프로토콜은 Request(요청)/Response(응답) 동작에 기반하여 서비스 제공한다는 특징을 가지고 있습니다.
HTTP 프로토콜의 요청 메세지의 구조는 아래와 같습니다.
Request Line : 요청 대상을 가리키는 문자
Request Line의 구조는 {요청 타입}{공백}{URI}{공백}{HTTP 버전}으로 이루워져 있습니다.
메소드 종류 (요청 방식) | 설명 |
---|---|
⭐️GET | Client가 Server로부터 문서를 읽어오려 할 때 사용 |
⭐️POST | Client가 Server에게 어떤 정보를 전송할 때 사용 |
PUT | Client가 Server에 특정 자원을 업로드할 떄 사용 |
DELETE | Server에서 문서를 제거하기 위해 사용 |
PATCH | PUT과 비슷함, 기존 파일에서 변경 사항만을 포함 |
GET과 POST를 제외한 대부분의 메소드는 보안 문제 때문에 사용 못 하도록 막고 있습니다.
일반 헤더
헤더 종류 | 설명 |
---|---|
Content-Length | 메시지 바디 길이를 나타낼 때 쓰인다. |
Content-Type | 메시지 바디에 들어있는 컨텐츠 종류 |
요청 헤더
헤더 종류 | 설명 |
---|---|
Cookie | 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 한다. |
Host | 요청된 URL에 나타난 호스트명을 상세하게 표시 |
User-Agent | Client Program에 대한 식별 가능 정보를 제공 |
응답 헤더
헤더 종류 | 설명 |
---|---|
Server | 사용하고 있는 웹서버의 소프트웨어에 대한 정보를 포함 |
Set-Cookie | 쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키 값을 브라우저가 서버에게 다시 보낼 때 사용한다. |
보내려는 데이터(문서, 이미지, 영상 등...)가 할당되는 영역입니다.
Body는 없을 수도 있습니다.
HTTP 프로토콜의 응답 메세지의 구조는 아래와 같습니다.
Status Line : 요청 대상을 가리키는 문자
Status Line의 구조는 {HTTP 버전}{공백}{상태 코드}{공백}{상태 문구}으로 이루워져 있습니다.
상태 코드 종류 | 상태 문구 | 설명 |
---|---|---|
200 | OK | Client의 요청이 성공했다는 것을 나타낸다. |
⭐️403 | Forbidden | Client가 권한이 없는 페이지를 요청했을 때 |
⭐️404 | Not Found | Client가 서버에 없는 페이지를 요청했을 때 |
⭐️500 | Internal Server Error | Server의 일부가 멈췄거나 설정 오류가 발생 |
⭐️503 | Service Unavailable | 최대 Session 수를 초과했을 때 |
HTTP 응답 프로토콜의 다양한 옵션이 들어가는 공간입니다.
일반 헤더
헤더 종류 | 설명 |
---|---|
Content-Length | 메시지 바디 길이를 나타낼 때 쓰인다. |
Content-Type | 메시지 바디에 들어있는 컨텐츠 종류 |
요청 헤더
헤더 종류 | 설명 |
---|---|
Cookie | 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 한다. |
Host | 요청된 URL에 나타난 호스트명을 상세하게 표시 |
User-Agent | Client Program에 대한 식별 가능 정보를 제공 |
응답 헤더
헤더 종류 | 설명 |
---|---|
Server | 사용하고 있는 웹서버의 소프트웨어에 대한 정보를 포함 |
Set-Cookie | 쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키 값을 브라우저가 서버에게 다시 보낼 때 사용한다. |
보내려는 데이터(문서, 이미지, 영상 등...)가 할당되는 영역입니다.
Body는 없을 수도 있습니다.