Web

HTTP

Web WWW = World Wide Web 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간 웹과 인터넷은 다름! 웹의 3요소: HTTP, HTML, URL HTTP = HyperText Transfer Protocol WWW 상에서 정보를 주고받을 수 있는 프로토콜입니다…

2021. 05. 23읽기 3분1503자

Web

  • WWW = World Wide Web
  • 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간
  • 웹과 인터넷은 다름!
  • 웹의 3요소: HTTP, HTML, URL

HTTP = HyperText Transfer Protocol

WWW 상에서 정보를 주고받을 수 있는 프로토콜입니다. 주로 HTML 문서를 주고받는 데에 쓰이며, TCP와 UDP를 사용하고 80번 포트를 사용합니다.

http://public.codesquad.kr/honux/images/w301.png

http://public.codesquad.kr/honux/images/w3-1.GIF

클라이언트 : 주로 웹 브라우저로 항상 요청만 합니다.

서버 : 클라이언트의 요청에 대해 적절한 문서를 제공합니다.

프록시 : 클라이언트와 서버 사이에 존재하며 무언가 일을 해 줍니다.

   → 캐싱, 필터링, 로드 밸런싱, 인증, 로깅 등의 다양한 기능을 수행

HTTP 동작방식

http://public.codesquad.kr/honux/images/w302.png

  • 실제로는 DNS 서버가 개입합니다.

HTTP 특징

connectionless

  • 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징입니다.
  • HTTP는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있습니다.
  • 헤더에 keep-alive라는 값을 줘서 커넥션을 재활용하는데 HTTP 1.1에서는 이것이 디폴트입니다.
  • HTTP가 TCP 위에서 구현되었기 때문에 (TCP는 연결지향, UDP는 비연결지향) 네트워크 관점에서 keep-alive는 옵션으로 connectionless의 연결 비용을 줄이는 것을 장점으로 하는 비연결지향이라고 합니다.

stateless

  • 통신이 끝나면 상태를 유지하지 않는 특징입니다.
  • 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있습니다.
  • 쿠키와 세션은 위의 두 가지 특징을 해결하기 위해 사용합니다.
  • 예를 들어, 쿠키와 세션을 사용하지 않으면 쇼핑몰에서 옷을 구매하려고 로그인을 했음에도 페이지를 이동할 때마다 계속 로그인을 해야 합니다.
  • 쿠키와 세션을 사용했을 경우 한 번 로그인을 하면 어떠한 방식에 의해서 그 사용자에 대한 인증을 유지하게 됩니다.

브라우저의 렌더링 과정

  1. 최초에는 HTML을 가져옵니다.
  2. HTML에서 CSS, js, 이미지에 대한 링크 정보를 추출합니다.
  3. 추출한 정보의 URL을 이용해 새로운 요청을 보냅니다.
  4. 모든 웹 자원을 받아와서 렌더링을 시작합니다.

URL: Uniform Resource Locator

(URI = URL + URN) : 리소스를 식별하는 주소

/content-images/http_1.png

  • URI (Uniform Resource Identifier) : 네트워크 상에 존재하는 자원을 구분하는 **식별자(ID)**로서의 의미가 강합니다.
  • URL (Uniform Resource Locator) : 네트워크 상에 존재하는 자원의 위치를 말합니다. 즉 자원의 어디에 있는지 나타내는 Where의 개념입니다.
  • URN (Uniform Resource Name) : 자원의 이름을 나타냅니다.

URL, URN, URI 예시

  • telnet://192.168.0.10:8080/ : 해당 위치로 접근하는 방법인 telnet://을 포함하므로 URL(혹은 URI)로 볼 수 있습니다.
  • http://nsinc.tistory.com/ : http:// 때문에 URL 혹은 URI라고 볼 수 있습니다.
  • mailto:myname@me.com : mailto 덕분에 URL (URI)으로 볼 수 있습니다.
  • urn:isbn:0451450523 : URN으로 1926년에 출간된 the Last Unicorn의 도서식별번호를 가리킵니다.
  • urn:oid:2.16.840 : URN으로 미국을 의미하는 OID입니다.

Scheme : 사용자이름:비번@호스트:포트/경로;패러미터?쿼리#프래그먼트

https://honux77:pw1234@github.com:443/
honux77/MMT?file=sum.py#30
  • 쿼리: 편의상 =과 &를 사용합니다.
  • 프래그먼트: 클라이언트만 사용합니다.

HTTP Status

HTTP 상태 코드

참고자료

URL vs URI vs URN

도움이 됐다면 공유해 주세요.

이어서 읽기