(10분 테크톡) Web 요청 & 응답과정
목차
- 웹 요청과 응답 과정을 떠받치는 핵심 개념들
- 웹 요청과 응답 과정
1. 인터넷 (Internet)
1) Local Area Network (LAN)
- 근거리 통신망
- 구내 정보 통신망은 네트워크 매체를 이용하여 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶은 컴퓨터 네트워크
2) Internet
- 컴퓨터 네트워크들을 서로 연결지어 주는 범지구적 네트워크
- (= Inter-Network = 컴퓨터 네트워크들의 네트워크)
- 이렇게 구축된 인터넷이라는 거대한 네트워크 위에서 오늘날 우리가 사용하는 다양한 서비스들이 동작
- 웹도 인터넷 위에서 동작하는 서비스들 중 하나
3) 웹 (World Wide Web)
- 당시 빠르게 발전하고 있던 인터넷
- 그리고 HyperText 같은 당시 새롭게 떠오르는 컴퓨터 기술들을 활용하여 이러한 문제점을 해결하고자 했음
- 웹의 존재이유는 정보(자원)의 공유 -> 웹은 수많은 요청과 응답 사이클의 연속으로 이루어짐
4) 서버 & 클라이언트
4-1) 서버 (Server)
- 정보, 자원, 서비스를 제공하는 측
- 요청을 받고 응답하는 측
4-2) 클라이언트 (Client)
- 클라이언트는 정보, 자원, 서비스를 사용하는 측
- 요청을 보내는 측
5) HTTP (HyperText Transfer Protocol)
- 웹 요청과 응답에 관한 클라이언트와 서버사이의 규약 (약속)
6) HTTP의 대표적인 특성 (1)
6-1) 비연결성
- 클라이언트의 요청에 대해 서버가 응답을 마치면 연결을 끊어버린다.
- 다음 요청은 새로운 연결을 통해 이루어진다.
6-2) 단점
- 매번 모든 요청에 대해서 새로운 연결/해제 과정을 거치므로 네트워크 비용측면에서 비효율적
6-3) 보완책
- HTTP/1.1 Keep-Alive
- 서버와 클라이언트 사이에서 통신이 없어도 지정된 시간동안 연결을 유지하는 기능
7) HTTP의 대표적인 특성 (2)
7-1) 무상태성 (Stateless)
- 서버와 클라이언트는 하나의 요청이 진행되는 동안만 서로를 인지
7-2) 단점
- 클라이언트 인증(로그인)이 필요한 서비스에서 불편함
7-3) 보완책
- 쿠키, 세션, 토큰 (OAuth, JWT) - 상태를 기억하기 위한 기능들
8) HTTP Status Code (응답 코드, 상태 코드)
-
클라이언트의 요청에 대해서 서버는 요청에 대한 처리 상태를 숫자 코드로 반환
-
1xx : (정보) 요청을 받았으며 프로세스를 계속한다.
-
2xx : (성공) 요청을 성공적으로 받았으며 인식해서 처리했다.
-
3xx : (리다이렉션) 요청 완료를 위해 추가 작업 조치가 필요하다.
-
4xx : (클라이언트 에러) 요청의 문접이 잘못되었거나 요청을 처리할 수 없다.
-
5xx : (서버 에러) 서버가 명백히 유효한 요청에 대해 충족을 실패했다.
9) Http Method(verbs) (Http 메서드)
-
클라이언트가 요청을 보낼때 해당 요청의 목적이 뭔지 HTTP Mehtod를 통해 명시
-
GET : 서버의 리소스를 조회하고자 할 때 (READ)
-
POST : 서버에 리소스를 생성하고자 할 때 (CREATE)
-
PUT : 서버의 리소스를 수정할 때 (UPDATE)
-
DELETE : 서버의 리소스를 삭제할 때 (DELETE)
-
HEAD : GET과 동일하나, 서버에서 Body를 빼고 HEAD로만 응답 (리소스 확인의 용도)
-
PATCH : 리소스의 부분만을 수정할 때
-
OPTIONS : 지원 가능한 메서드 종류를 알아볼 때
-
TRACE : 리소스의 경로를 따라 메세지 loop-back 테스트를 실행
-
CONNECT : 리소스로 식별되는 서버로의 터널을 맺을 때
2. 웹 요청과 응답 과정
1) 티스토리 홈페이지에 대한 요청과 응답
1-1) URL
- Uniform Resource Locator
- 네트워크상 자원의 위치( 주소 )
1-2) 홈페이지에 대한 요청을 서버로 전송 (HTTP Request)
1-3) 서버가 클라이언트로 부터 요청을 받고 처리
-
Request Headers 확인
- 요청에 대한 정보 (URI, Method ..) + 클라이언트에 대한 정보 (accept, user-agent, cookie …)
-
요청에 상응하는 로직 수행
- 홈페이지에 해당하는 html 파일을 찾은 후 요청에 대한 응답 생성
1-4) 서버가 클라이언트에게 응답 (HTTP Response)
1-5) 클라이언트가 응답을 받은 후 필요한 리소스들을 추가 요청 & 응답 받기
- CSS, JavaScript 등등
댓글남기기