희락코딩

Server - HTTP (Hyper Text Transfer Protocol) 본문

프로그래밍/Server

Server - HTTP (Hyper Text Transfer Protocol)

Hello JoyCoding 2021. 5. 21. 23:28
728x90
반응형

HTTP(Hyper Text Transfer Protocol)

HTTP란 상호 간에 정의한 규칙을 의미하며 기기 간에 데이터를 주고 받기 위해 정의된 통신 프로토콜 입니다. 브라우저와 서버간에 데이터를 주고 받기 위해 사용하고 있습니다.

 

하이퍼텍스는 웹사이트에서 이용되어지는 링크들만 애기하는 것이 아니라 모든 리소스(문서, 이미지 파일등)을 포함합니다.  또 한 브라우저 위에서 동작하고 있는 웹사이트나 웹 APP 같은 Cilent들이 Server와 통신을 주고 받을수 있습니다. 이러한 비슷한 방법으로는 AJAX가 있습니다. AJAX도 http를 이용해서 서버에서 데이터를 받아 옵니다.

 

http의 특징

1. Client의 요청이 있을 때만 서버가 응답하는 단방향 통신 입니다.

2. 서버가 요구하는 API에 맞게 요청해야 응답을 받을 수 있습니다.

3. connectionless (무연결성) : 응답이 완료가 되면 클라이언트와 서버의 연결이 끊어지는 특징이다.

4. stateless(무상태성): 모든 http 요청은 독립적이므로 서버는 클라이언트의 상태를 기억하지 못한다(지속적인 state라는 것이 없다).

 

(3번 기준은 http/1.x 버전 입니다)

이미지 출처 - https://medium.com/@lidiach217/web-%EA%B8%B0%EB%B3%B8%EA%B0%9C%EB%85%90-http-%ED%86%B5%EC%8B%A0-cf5f89906c8e

 

Request & Response

http는 데이터를 주고 받으려면 위의 그림과 같이 요청(request)과 응답(response)을 해야됩니다.

클라이언트 웹으론 브라우저를 의미하고 요청을 보내는 쪽이고 서버는 요청을 받는 쪽입니다.

 

 

Server & Client

서버란 서비스를 제공하는 컴퓨터입니다. 페이지 지원이나, 공유 데이터의 처리 및 저장 등의 비즈니스 로직을 수행하며 DB와 커뮤니케이션을 수행합니다.

 

웹브라우저와 같이 서버에 접속하기 위한 사용자를 클라이언트라고 합니다. 사용자의 입력을 수행하고, 서버에 대한 응답을 화면에 표시합니다.

 


URL & URI

URL(Uniform Resource Locator)은 자원의 위치를 알려주기 위한 프로토콜입니다. 브라우저는 URL을 이용하여 자원의 위치를 찾을 수 있습니다. URL은 scheme, hosts, url-path로 구분 할 수 있고 여기서 query, bookmark를 더한것이 URI 입니다. 브라우저의 검색창을 클릭하면 나타나는 주소가 URI이고 URI는 URL을 포함하는 상위 개념입니다.

 

 


IP & PORT

IP는 Internet Protocol의 줄임말로, 인터넷상에서 사용하는 주소체계를 의미합니다. 

PORT는 IP주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미합니다.

 

 

반드시 알아야 할 잘 알려진 포트 번호

22 : SSH

80 : HTTP

443 : HTTPS

 


HTTP Request Method

http 요청 메서드를 사용해서 URL에 접근하여 서버에 특정 데이터를 요청 할 수 있습니다. 

 

GET : 존재하는 데이터를 요청

POST : 새로운 데이터를 생성

PUT : 존재하는 데이터를 변경 (modfiy)

Patch : 패치도 PUT이랑 똑같은 개념 다만 (replace 개념)

DELETE : 존재하는 데이터를 삭제

 

HTTP 요청 메서드는 조회, 생성, 변경, 삭제를 할수 있습니다.

 

이미지 출처 - https://medium.com/@lidiach217/web-%EA%B8%B0%EB%B3%B8%EA%B0%9C%EB%85%90-http-%ED%86%B5%EC%8B%A0-cf5f89906c8e

 


HTTP Status Code

HTTP상태 코드는 클라이언트의 요청에 의해 서버가 응답해주는 정보입니다. 주요 상태 코드는 100 ~ 500번대 까지 각각 다른 의미로 다양하게 있습니다.  아마 200(성공)대와 400(실패)번대 코드를 자주 볼겁니다.

 

1xx : 처리중에 있습니다.

2xx : 성공

200번대의 상태 코드는 대부분 성공을 의미합니다.

 

3xx : 리디렉션

300번대의 상태 코드는 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 url로 리디렉트를 유도 하는 경우입니다. 쉽게 말해 요청을 성공정으로 처리하기 위해 추가 동작이 필요합니다.

 

4xx : 클라이언트 요청 오류

400번대의 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우 입니다. 유효하지 않은 정보를 요청했거나 요청이나 권한이 잘못 되었을 경우 발생합니다.

 

5xx : 서버 에러

500번대의 상태 코드는 서버 쪽에서 오류가 난 경우입니다.

728x90
반응형

'프로그래밍 > Server' 카테고리의 다른 글

server - Express로 upper / lower 구현하기 복기  (2) 2021.05.30
Server - Express  (0) 2021.05.30
Server - CORS  (2) 2021.05.27
Comments