HTTP (Hyper Text Transfer Protocol)란, 인터넷에서 서버와 클라이언트가 서로 데이터(하이퍼 텍스트 문서)를 주고 받기 위해 사용되는 통신 규약을 말한다. 사용자가 브라우저를 통해(클라이언트) 어떤 서비스를 요청(request)하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)한다. 기본적으로 TCP/IP(Transmission Control Protocol / Internet Protocol)을 이용하며, 사용 포트 번호는 기본적으로 80이다. HTTP는 1989년 팀 버너스-리에 의해 처음 설계되어 인터넷을 통한 월드 와이드 웹(World-Wide Web 일명 : www) 기반에서 전 세계적인 정보 공유를 이루는데 큰 역할을 했다. 인터넷 기반 서비스에는 HTTP 외에도 Email, FTP, DNS, NEWS 등이 있다.
HTTP의 특징
1. 클라이언트-서버 모델을 따른다.
2. TCP/IP를 이용하는 응용 프로토콜이다.
3. 비연결형 지향: 클라이언트가 서버에게 리소스를 요청한 후 응답을 받으면 연결을 끊는다.
4. 무상태성: 각각의 요청은 독립적이다.
Request Method
⦁ GET : 서버에게 조회할 리소스를 요청한다. (READ, 조회)
⦁ POST : 서버에게 본문(body)에 생성할 데이터를 삽입하여 전송한다. (CREATE, 생성)
⦁ PUT : 서버에게 본문에 수정할 데이터를 삽입하여 전송한다. (UPDATE, 수정)
⦁ DELETE : 서버에게 삭제할 리소스를 요청한다. (DELETE, 삭제)
⦁ PATCH : PUT과 비슷하지만 일부만 수정한다는 점에서 다르다.
Response Status Code
⦁ 1xx (요청에 대한 정보) : 요청을 받았으면 작업을 계속한다.
⦁ 2xx (성공) : 요청을 성공적으로 수행했다. / 200(성공), 201(새 리소스 작성), 202(요청 접수, 아직처리 안함)
⦁ 3xx (리다이렉션) : 클라이언트가 요청을 마치기 위해 추가적인 동작을 취해야 한다.
⦁ 4xx (클라이언트 오류) : 클라이언트에 오류가 있다. / 401(권한 없음), 404(찾을 수 없음, 서버에 없는 페이지)
⦁ 5xx (서버 오류) : 서버에 오류가 있다. / 500(내부 서버 오류)
HTTP는 클라이언트-서버가 메시지를 주고 받으면 연결을 끊어버린다. 이를 보완하기 위해 쿠키와 세션 같은 기술이 등장했다. 또한, 이 요청과 응답 사이에는 게이트웨이 또는 캐시 역할을 하는 프록시가 있다.
프록시 : 웹브라우저와 서버 사이에 수많은 HTTP 메시지들이 왔다갔다 하는데, 이들이 어떻게 동작하는지 눈에 보이지 않는다. 애플리케이션 계층에서 동작하는 것들을 일반적으로 프록시라고 말한다. 프록시는 눈에 보이거나 그렇지 않을 수도 있으며 다양한 기능들을 수행한다.
- 캐싱 (HTTP로 문서 캐시되는 방식 제어 가능)
- 필터링 (바이러스 백신 스캔, 유해 컨텐츠 차단 기능)
- 로드 밸런싱 (여러 서버들이 서로 다른 요청을 처리하도록 허용)
- 인증 (다양한 리소스에 대한 접근 제어. HTTP-WWW-Authenticate 또는 HTTP 쿠키를 사용해 설정 가능)
- 로깅 (이력 정보를 저장)
'웹_프론트엔드 > 로드맵 챌린지' 카테고리의 다른 글
인터넷 - 호스팅은 무엇일까요? (0) | 2021.12.09 |
---|---|
인터넷 - 도메인 네임은 무엇일까요? (0) | 2021.12.08 |
인터넷 - DNS와 작동 원리 (0) | 2021.12.06 |
인터넷 - 브라우저와 동작 원리 (0) | 2021.12.05 |
인터넷 - 인터넷은 어떻게 작동될까요? (0) | 2021.12.01 |