티스토리 뷰

1장. HTTP (HyperText Transfer Protocol) 개관

  • 1.1 HTTP : 인터넷의 멀티미디어 배달부

    • 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에, 전송 중 파괴/중복/왜곡 되지 않음


  • 1.2 웹 클라이언트와 서버

    • 요청 : /index.html 이라는 이름의 문서를 가져와라!

    • 응답 : “여기있다. HTTP 포맷으로 되어 있고, 길이는 3,150 글자다.”


  • 1.3 리소스

    • 웹 리소스란 웹에 콘텐츠를 제공하는 모든 것을 말한다.

    • 1.3.1 미디어타입

      • MIME(Multipurpose Internet Mail Extensions, 다목적 인터넷 확장 메일)

        • 이메일에서 사용되다가 HTTP 에도 적용

      • 웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙임

        • primary object type/specific subtype

        • HTML (text/html)

        • plain ASCII (text/plain)

        • JPEG (image/jpeg)

        • GIF (image/gif)

    • 1.3.2 URI

      • 통합 자원 식별자(Uniform Resource Identifier)

      • 인터넷의 우편물 주소 같은 것으로, 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있음

    • 1.3.3 URL

      • 통합 자원 지시자(Uniform Resource Locator)

      • 리소스 식별자의 가장 흔한 형태, 리소스에 대한 구체적인 위치 서술

      • 세 부분으로 이루어진 표준 포맷을 따름

        • 1. 스킴(scheme) - 보통 http 프로토콜

        • 2. 서버의 위치

        • 3. 서버의 리소스 경로

      • 오늘날 대부분의 URI는 URL이다.

    • 1.3.4 URN

      • 유니폼 리소스 이름(Uniform Resource Name)

      • 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할

      • 리소스가 그 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없음


  • 1.4 트랜잭션

    • 요청(명령, URI) 명령과 응답(트랜잭션 결과) 결과로 구성

    • 1.4.1 메서드

      • GET, PUTH, DELETE, POST, HEAD

    • 1.4.2 상태 코드

      • 200, 302, 404

    • 1.4.3. 웹페이지는 여러 객체로 이루어질 수 있다


  • 1.5 메시지

    • 시작줄, 헤더, 본문


  • 1.6 TCP 커넥션

    • TCP(Transmission Control Protocol, 전송 제어 프로토콜)

    • 1.6.1 TCP/IP

      • TCP

        • 오류 없는 데이터 전송

        • 순서에 맞는 전달 (보낸 순서대로 도착)

        • 조각나지 않는 데이터 스트림 (언제든 어떤 크기로든 보낼 수 있음)

      • TCP와 IP가 층을 이루는, 패킷 교환 네트워크 프로토콜의 집합

    • 1.6.2 접속, IP 주소 그리고 포트 번호

      • IP(Internet Protocol)

      • HTTP 클라이언트가 서버에 메시지를 전송할 수 있게 되기 전에, 인터넷 프로토콜 주소와 포트번호를 사용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 함



  • 1.8 웹의 구성요소

    • 1.8.1. 프락시

      • 클라이언트와 서버 사이에 위치한 HTTP 중개자

      • 주로 보안을 위해 사용

      • 요청과 응답을 필터링

    • 1.8.2 캐시

      • 많이 찾는 웹페이지를 클라이언트 가까이에 보관하는 HTTP 창고

    • 1.8.3 게이트웨이

      • 다른 애플리케이션과 연결된 특별한 웹 서버

      • 다른 서버들의 중개자로 동작하는 특별한 서버

    • 1.8.4 터널

      • 단순히 HTTP 통신을 전달하기만 하는 특별한 프락시

      • 두 커넥션 사이에서 날(raw) 데이터를 열어보지 않고 그대로 전달해주는 HTTP 애플리케이션

      • 비 HTTP 데이터를 하나 이상의 HTTP 연결을 통해 그대로 전송해주기 위해 사용

      • 예) 암호화 된 SSL(Secure Socket Layer) 트래픽을 HTTP 커넥션으로 전송함으로써 웹 트래픽만 허용하는 사내 방화벽을 통과시키는 것

    • 1.8.5 에이전트

      • 자동화된 HTTP 요청을 만드는 준지능적(semi-intelligent) 웹클라이언트

      • ‘스파이더’나 ‘웹로봇’과 같은 다채로운 이름을 갖고 있음

      • 예) 스파이더는 웹을 돌아다니며, 검색엔진의 데이터베이스나 가격비교 로봇을 위한 제품 카탈로그와 같은 유용한 웹 콘텐츠 보관소를 만듦

      • 크롤러




2장. URL과 리소스

  • 2.1 인터넷 리소스 탐색하기

    • URI의 두가지 주요 부분집합은 URL과 URN

    • URL (스킴://서버위치/경로)


  • 2.2 URL 문법

    • URL문법 (<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프래드먼트>)


컴포넌트

설명

기본값

예제

스킴

리소스를 가져오려면 어떤 프로토콜을 사용하여 서버에 접근해야 하는지 가르킨다.

-

http://

ftp://

사용자 이름

몇몇 스킴은 리소스에 접근을 하기 위해 사용자 이름을 필요로 한다.

annoymous

ftp://ftp.prep.ai.mit.edu/pub/gnu

ftp://anonymous@

ftp.prep.ai.mit.edu/pub/gnu

ftp://anonymous:my_passwd@

ftp.prep.ai.mit.edu/pub/gnu

비밀번호

사용자의 비밀번호를 가리키며, 사용자 이름에 콜론(:)으로 이어서 기술한다.

이메일 주소

호스트

리소스 호스팅하는 서버의 호스트 명이나 IP 주소.

-

http://www.joes-hardware.com:80/index.html

http://161.58.228.45:80/index.html

포트

리소스를 호스팅하는 서버가 열어놓은 포트번호, 많은 스킴이 기본 포트를 가지고 있다. (HTTP의 기본 포트는 80이다.)

스킴에 따라 따름

경로

이전 컴포넌트와 빗금(/)으로 구분되어 있으며, 서버 내 리소스가 서버 어디에 있는지를 가르킨다.

-

http://www.joes-hardware.com/seasonal/index-fall.html

파라미터

특정 스킴들에서 입력 파라미터를 기술하는 용도로 사용한다. 파마미터는 이름/값을 쌍으로 가진다. 파라미터와 다른 파라미터나 경로의 일부와 세미콜론(;)으로 구분하여 기술하며, 여러 개를 가질 수 있다.

-

ftp://prep.ai.mit.edu/pub/gnu;type=d

http://www.joeshardware.com/hammers

;sale=false/index.html;graphics=true

질의

스킴에서 애플리케이션에 파라미터를 전달하는데 쓰인다. 공통 포맷은 없고 URL의 끝에 “?”로 구분한다. 질의와 질의는 “&”로 연결한다.

-

http://www.joes-hardware.com/inventorycheck.cgi?item=12731

http://www.joes-hardware.com/inventorycheck.cgi?item=12731&color=blue

프래그먼트

리소스의 조각이나 일부분, 특정객체를 가리키는 이름이다. 클라이언트에서만 사용. URL의 끝에 “#”로 구분한다.

-

http://www.joes-hardware.com/tool.html/#drills


  • 2.3 단축 URL

    • 2.3.1 상대 URL

      • 상대 URL

        • 예) ./hammer.html

      • 절대 URL = 기저 URL + 상대 URL

        • 예) http://www.joes-hardware.com/hammer.html

    • 2.3.2 URL 확장


  • 2.4 안전하지 않은 문자

    • 안전한 전송 : 정보가 유실될 위험 없이 URL을 전송할 수 있다는 것을 의미

    • 모든 인터넷 프로토콜로 URL이 전송될 수 있고, 가독성도 있기를 바람

    • 이스케이프라는 기능을 추가하여 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게 함

    • 2.4.1 URL 문자 집합

      • 이스케이프 문자열은 US-ASCII에서 사용이 금지된 문자들

      • 특정 문자/데이터를 인코딩해서 이동성+완성도를 높임

    • 2.4.2 인코딩 체계

      • Percent(%)로 시작해서 ASCII로 표현되는 16진수의 ‘이스케이프’ 문자로 바꿈

문자

ASCII 코드

URL 예

~

126(0x7E)

http://www.joes-hardware.com/%7Ejoe

SPACE

32(0x20)

http://www.joes-hardware.com/%20tools.html

%

37(0x25)

http://www.joes-hardware.com/100%25satisfaction.html

    • 2.4.3 문자 제한

      • 예약어를 사용하려면 반드시 인코딩 해서 사용해야 함

      • 선점 : % / . .. # ? ; : $ + @ & =

      • 제한 : {} | \ ~ [] ` <> “ 등

    • 2.4.4 좀 더 알아보기

      • 브라우저와 같이 사용자로부터 최초로 URL을 입력받는 애플리케이션에서 인코딩 하는 것이 가장 적절

      • 극단적으로 모든 문자열을 인코딩할 수 있지만 오동작을 일으킬 수 있음


  • 2.5 스킴의 바다

    • URL 문법에서 크게 벗어나지 않음

스킴

설명

http

HyperText Transfer Protocol 스킴. 기본포트 80

https

http 스킴과 거의 같다. 다른 점은 HTTP의 커넥션의 양 끝단에서 암호화하기 위해 넷스케이프에서 개발한 보안 소켓 계층(Secure Sockets Layer, SSL)을 사용. 기본포트 443

mailto

인터넷 이메일 주소의 문법은 RFC 822에 기술되어 있음

ftp

File Transfer Protocol

rtsp,rtspu

RTSP(Real Time Streaming Protocol) URL은 실시간 스트리밍 프로토콜

file

file 스킴은 주어진 호스트 기기에서 바로 접근할 수 있는 파일들을 나타냄

news

RFC 1036에 정의된 바와 같이 특정 문서나 뉴스 그룹에 접근하는데 사용한다.

news URL은 리소서의 위치 정보를 충분히 포함하지 않는 특이한 속성이 있다.

사용자로부터 그 정보를 알아내는 것은 애플리케이션의 몫이다.

telnet

대화형 서비스에 접근하는데 사용한다.


  • 2.6 미래

    • PURL은 리소스의 실제 URL 목록을 관리하고 추적하는 리소스 위치 중개 서버를 두고, 해당 리소스를 우회적으로 제공

    • URL에서 URN으로 주소 체계를 바꾸는 것은 매우 큰 작업

    • URL은 한계점이 있지만 웹 개발 커뮤니티에서 가장 긴급한 사안이 아님

    • URL은 현재는 물론 가까운 미래에도 인터넷에 있는 리소스를 명명하는 방법이 될 것

    • URL을 대체할 수 있는 작명 스킴이 나오기 전까지는 계속 사용될 것

    • 다만 URL은 그 한계를 가진 상태에서, 그것을 해결할 수 있는 새로운 표준(아마도 URN) 같은 것들이 나오고 적용 될 것




1장 http://www.slideshare.net/HyeonSeokChoi/http-1-59184615
2장 http://www.slideshare.net/choong83/http-2-url



저작자 표시 비영리 변경 금지
신고
댓글
댓글쓰기 폼
«   2017/12   »
          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
31            
글 보관함
Total
101,164
Today
13
Yesterday
73