티스토리 뷰
Web - HTTP 프로토콜의 이해
| 인터넷 (네트웍 통신)의 이해
- 인터넷 != World Wide Web
별거 아닌거 같지만 중요한 개념이다. 대부분의 사람들이 인터넷을 웹이라 생각할 수 있다. 하지만 인터넷은 더 큰 범주이고 웹은 인터넷 기반의 대표 서비스 중 하나이다. 웹이외의 인터넷 기반 서비스들을 프로토콜, 포트, 기능 별로 분리해 정리하면 아래 표와 같다.
이름 |
프로토콜 |
포트 |
기능 |
WWW |
HTTP |
80 |
웹서비스 |
SMTP/POP3/IMAP |
25/110/114 |
이메일 서비스 |
|
FTP |
FTP |
21 |
파일 전송 서비스 |
DNS |
DNS |
23 |
네임서비스 |
NEWS |
NNTP |
119 |
인터넷 뉴스 |
- 인터넷 (Internet)
TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크 (네트워크의 결합체)
| HTTP란?
- 팀 버너스리(Tim Berners-Lee)와 그가 속한 팀은 CERN에서 HTML뿐만 아니라 웹 브라우저 및 웹 브라우저 관련 기술과 HTTP를 발명하였습니다.
- 문서화된 최초의 HTTP버전은 HTTP v0.9(1991년)입니다.
- HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(protocol)입니다.
- HTTP는 계속 발전하여 HTTP/2까지 버전이 등장한 상태입니다.
| HTTP 작동방식
- HTTP는 서버/클라이언트 모델을 따릅니다.
서버 클라이언트 모델?클라이언트 서버 모델(client–server model)은 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자[1] 네트워크 아키텍처를 나타낸다.
- 장점
- 불특정 다수를 대상으로 하는 서비스에는 적합하다.
- 클라이언트와 서버가 계속 연결된 형태가 아니기 때문(stateless)에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다. - 단점
- 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.
- 이러한 특징을 무상태(Stateless)라고 말한다.
- 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다.
| URL
URL (Uniform Resource Locator)
- 인터넷 상의 자원의 위치
- 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소
첫번째 줄의 요청 메소드는 서버에게 요청의 종류를 알려주기 위해서 사용됩니다.
- 요청 메서드 : GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 온다.
- 요청 URI : 요청하는 자원의 위치를 명시한다.
- HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전이다.
각각의 메소드 이름은 다음과 같은 의미를 가집니다.( 참고로 최초의 웹 서버는 GET방식만 지원해줬습니다.)
- GET : 정보를 요청하기 위해서 사용한다. (SELECT)
- POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
- PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
- DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
- HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.
- OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.
- TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.
| [헷갈리는 용어] URL과 URI?
http://sunychoi.github.io/java/2015/04/27/uri-url.html 참고
URI : Uniform Resource Identifier
통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다.
URL : Uniform Resource Locator
네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. (출처 : http://ko.wikipedia.org/wiki/URL)
위에 대한 설명을 예제로 살펴보자.
https://www.google.co.kr/search?q=uri 같은 주소가 있다고하자.https프로토콜을 가지고있고 호스트이름을 가지고있다. 하지만 그 뒤에 /search?q=uri와 같은 문자열이 붙은걸 알 수 있는데 이 아이는 query string인 q의 값에 따라 여러가지 결과값을 가져올 수 있다.위 주소에서 URL은 https://www.google.co.kr/search까지이고, 내가 원하는 정보를 얻기위해서는 q=uri라는 식별자가 필요하므로, https://www.google.co.kr/search?q=uri 이 주소는 URI이지만 URL은 아니다.
결론: URI > URL
'Computer Engineering > Web' 카테고리의 다른 글
Web -DOM과 querySelector (0) | 2018.07.03 |
---|---|
Web - 도메인관리시스템에 대한 이해 (0) | 2018.06.14 |
Web- Nginx (0) | 2018.03.29 |
Web - Get과 Post의 차이 (1) | 2018.03.25 |
Web - CORS (0) | 2018.03.22 |
댓글