티스토리 뷰

Web - HTTP 프로토콜의 이해



| 인터넷 (네트웍 통신)의 이해


  • 인터넷 != World Wide Web
별거 아닌거 같지만 중요한 개념이다. 대부분의 사람들이 인터넷을 웹이라 생각할 수 있다. 하지만 인터넷은 더 큰 범주이고 웹은 인터넷 기반의 대표 서비스 중 하나이다. 웹이외의 인터넷 기반 서비스들을 프로토콜, 포트, 기능 별로 분리해 정리하면 아래 표와 같다.


이름

프로토콜 

 포트

기능 

 WWW

 HTTP

 80

 웹서비스

 Email

 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함