본문 바로가기

Road to Web Developer/Network

HTTP 개념 및 주요 내용 정리

1. HTTP란?

HTTP(Hypertext Transfer Protocol)하이퍼텍스트 전송 규약. 웹 브라우저(web browser) 같은 응용프로그램을 통해 웹 클라이언트(사용자)와 웹 서버(서비스 제공자) 사이 데이터를 전송하는 프로토콜이다.


HTTP를 통해 주고 받는 대표적인 파일은 HTML 문서파일이 있다.


2. HTTP의 특징

- HTTP 클라이언트와 HTTP 서버에 의해서 해석이 된다.

- TCP/IP를 이용하는 응용 프로토콜(application protocol)이다.

- 연결 상태를 유지하지 않는 비연결성 프로토콜이다.

- 요청/응답(Request/Response) 방식으로 동작한다.


연결 상태를 유지하지 않기 때문에 정보를 저장하기 위해 쿠키(Cookie)와 세션(Session)이 등장했다.


3. HTTP 통신 과정


① 클라이언트(사용자)가 서버에 HTTP Request (요청)을 한다.

② 서버가 사용자의 요청을 받고 HTTP Response (응답)을 한다.


기본적으로, 클라이언트의 요청이 없으면 응답하지 않는다.


4. HTTP 상태 코드

상태 코드는  IETF (Internet Engineering Task Force)에서 정의한 인터넷 표준에 따라 개발되며, 다섯가지 클래스로 분류된다.


1xx: Informational - 요청 정보 처리 중

2xx: Success - 요청을 정상적으로 처리함

3xx: Redirection - 요청을 완료하기 위해 추가 동작 필요

4xx: Client Error - 서버가 요청을 이해하지 못함

5xx: Server Error - 서버가 요청 처리 실패함


① 1xx: Informational 정보

서버가 요청을 클라이언트에서 성공적으로 수신했으며 서버 끝에서 처리 중이라는 정보를 나타낸다. 서버의 임시 응답이며 일반적으로 상태 줄과 선택적 헤더 만 포함하며 빈 줄로 끝난다. 현재는 거의 사용하지 않는다.


② 2xx: Success 성공

서버가 요청을 받고 성공적으로 처리되었음을 나타낸다.


③ 3xx: Redirection 리디렉션

브라우저는 자동으로 다른 URL로 리디렉션되므로 브라우저 창에는이 코드가 표시되지 않지만, 이미지 파일처럼 캐싱된 파일을 새로고침 후 확인하면 3xx 코드를 확인할 수 있다.


④ 4xx: Client Error 클라이언트 오류

서버가 해결할 수 없는 클라이언트 측 에러 코드다. 주로 클라이언트(사용자)가 서버에 잘못된 요청을 했을 경우 발생한다.


⑤ 5xx: Server Error 서버 오류

서버가 클라이언트의 요청을 처리하지 못했을 때 발생한다. 서버는 보안 상 통신하지 않는 것이 가장 좋으므로 대부분의 에러 코드를 500 Error로 처리한다.


5. HTTP Method

GET - 정보 검색 ex) 게시판 리스트 불러오기

POST - 실행 / 저장 ex) 회원가입 / 로그인

PUT - 전체 수정 ex) 회원정보 전체 수정

DELETE - 삭제 ex) 회원정보 삭제

PATCH - 일부 수정 ex) 회원정보 일부 수정 (Update에 가장 가깝게 쓰이고 있다)

OPTIONS - 시스템에서 지원하는 메소드 확인

'Road to Web Developer > Network' 카테고리의 다른 글

HTTP Status Code  (0) 2019.01.17
URI / URL / URN  (0) 2019.01.16
REST와 RESTful API  (0) 2019.01.08
인터넷(Internet)과 웹(Web)  (0) 2019.01.08