URI & URL

Web/Common 2012. 2. 11. 18:38


3. Syntax Components

The generic URI syntax consists of a hierarchical sequence of components referred to as the scheme, authority, path, query, and fragment. URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty The scheme and path components are required, though the path may be empty (no characters). When authority is present, the path must either be empty or begin with a slash ("/") character. When authority is not present, the path cannot begin with two slash characters ("//"). These restrictions result in five different ABNF rules for a path (Section 3.3), only one of which will match any given URI reference. The following are two example URIs and their component parts: foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/\_________/ \_________/ \__/ | | | | | scheme authority path query fragment | _____________________|__ / \ / \ urn:example:animal:ferret:nose



출처 - http://tools.ietf.org/html/rfc3986



2.1.2 부위 지정자(fragment identifier)

어떤 URI는 한 자원 안에서의 위치를 참조한다. 이 경우에는 URI 뒤에 "#"와 부위 지정자(fragment identifier)를 추가한다.

지정자 이름 section_2의 앤커(anchor)를 지정하는 URI의 예:
http://somesite.com/html/top.html#section_2


출처 - http://www.trio.co.kr/webrefer/html40/intro/intro.html










출처 - 소설같은 XML






URI

통합 자원 식별자(Uniform Resource IdentifierURI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다닌다. URI는 다음과 같은 요소로 구성된다.

  • 프로토콜 (HTTP 혹은 FTP) + : + // + 호스트이름 + 주소
  • 예: http://ko.wikipedia.org

URI의 하위개념으로 URLURN 이 있다.

Uniform Resource Identifier (유니폼 자원 아이덴 티 파이어, URI ) 또는 통일 자원 식별자 (통일 조짐 식별자)는 일정한 서식에 따라 리소스(자원)를 가리키는 식별자 . 1998 년 8 월에 RFC 2396 으로 규정되고 2005 년 1 월에 RFC 3986 으로 개정되었다. URI는 Uniform Resource Locator (URL)의 개념을 확장한 것이다.

URI는 http / https 및 ftp 등의 체계로 시작 콜론 (:)로 구분된 후 계획에 대해 정의된 형식에 따라 리소스를 보여준다. 또한 URI가 식별하는 자원은 컴퓨터가 취급하는 데이터뿐만 아니라 사람이나 회사, 서적 등을 나타내는 것도 가능하다.

URI 체계는 IANA 에 의해 등록된 것이 공식적인 것으로 알려져있다. irc 와 javascript 같이 미등록이지만 널리 사용되고있는 체계도 존재한다.

목차

  [ 숨기기 ] 

URL과 URN 편집 ]

URI, URL, URN 집합 그림

URI는 다음 두 하위 집합이있다.

Uniform Resource Locator (URL)
자원의 "장소"를 확인한다. 네트워크의 위치를​​ 나타 자원을 식별한다.
Uniform Resource Name (URN)
자원의 "이름"을 확인한다. 만약 네트워크 리소스가 없어져도, 고유 영구적인 식별을 할 수 있도록한다.예를 들어 urn : ietf : rfc : 2648라는 URN은 RFC 2648에 대한 참조를 나타낸다.

그러나 W3C 가 2001 년 9 월 발표한 RFC 3305 [1] 에서는이 개념을 고전적인 견해하고있다. 새로운 패러다임에서는 모든 동일 URI로 파악하여 URL과 URN 같은 용어는 비공식적인 표현한다고하고있다. RFC 3305 에서도 비슷한 개념을 알 수있다.

관련 항목 편집 ]

참고 자료 편집 ]

  • RFC 2396 - Uniform Resource Identifiers (URI) : Generic Syntax (구)
    • TS X 0097:2004 - 통일 자원 식별자 (URI) 공통 구문 표준 시방서 (TS)
  • RFC 3986 - Uniform Resource Identifier (URI) : Generic Syntax
  • URI Schemes - IANA 의 URI 구성표 전화 번호부







URL

URL(Uniform Resource Locator, 문화어: 파일식별자, 유일자원지시기)은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.

흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.

FTP 프로토콜인 경우에는 FTP 클라이언트를 이용해야 하고, HTTP인 경우에는 웹 브라우저를 이용해야 한다. 텔넷의 경우에는 텔넷 프로그램을 이용해서 접속해야 한다.

[편집]URL의 이름 구성

  • URL은 제일 앞에 자원에 접근할 방법을 정의해 둔 프로토콜 이름을 적는다. gopher, telnet, ftp, http, usenet 등이다.
  • 프로토콜 이름 다음에는 프로토콜 이름을 구분하는 구분자인 ":"을 적는다.
  • 만약 IP 혹은 Domain name 정보가 필요한 프로토콜이라면 ":" 다음에 "//"를 적는다.[1]
  • 프로토콜명 구분자인 ":" 혹은 "//" 다음에는 프로토콜 마다 특화된 정보를 넣는다.

[편집]주석

  1.  URL Spec - 5. BNF for specific URL schemes http://tools.ietf.org/html/rfc1738#section-5

[편집]함께 보기








Uniform Resource Locator (유니폼 리소스 로케이터, URL ) 또는 통일 자원 위치 지정자 (통일元一하고 좋다)는 인터넷 에서 리소스 (자원)를 확인하기위한 형식적인 기호 시퀀스 WWW 을 비롯한 인터넷 응용 프로그램에서 제공되는 리소스를 주로 그 소재를 표현하는 것으로 파악한다. 또한 여기서 말하는 리소스는 (주로 인터넷) 데이터와 서비스를 의미 예를 들어 웹 페이지 와 전자 메일 주소 같은 것들이 그러하다.

팀 바나즈 = 리 가 1991 년 발표한 논문에서 Universal Resource Locator로 명명하고, 초기에는 그 이름이 사용 되었으나 현재의 정식 명칭은 Uniform Resource Locator이다.

URL을 포함하는 일반적인 개념으로 URI 가있다.

인터넷을 다양한 리소스가 서로 북적거리는 광대한 토지와 같이 잡으면 URL은 자원의 위치를 확인 " 주소 "와 같은 것이라고 생각할 수도있다.

또한, 일본 에서 더 일반적으로 선호하는 호칭으로서 " 주소 "가 있지만, 이것은 MAC 주소 와 IP 주소 등과 요즘의 기술 용어는 정확하지 않은 (의미가 애매하게하는 것만으로 틀린 것은 아니다).

목차

  [ 숨기기 ] 

URL 형식 편집 ]

예제 편집 ]

http : / / ja.wikipedia.org / wiki / Wikipedia
| | 경로 이름
| 호스트 이름 디렉토리 이름을 포함)
체계 ( 프로토콜 이름이 아닌)

http://ja.wikipedia.org/wiki/Wikipedia "전형적인 URL의 일례이다. URL이 같은 특징적인 형태의 문자열이며, WWW이 대중적인 오늘에 있어서는 자주 볼 수있는 것이다.

의 URL은 " 위키 피 디아 일본어 버전 안에있는 위키 피 디아 에 대해 설명하는 항목 "이라는 자원을 식별한다.

  • 스키마 이름 http 이 리소스 (항목)을 입수하기 위해서는 HTTP 를 사용해야하는 것을 나타낸다.
  • ja.wikipedia.org 이 자원이 저장되어있는 호스트 를 나타내는 호스트 이름이다.
  • 나머지 / wiki / Wikipedia 부분은 궁극적으로 리소스를 식별하는 데 더 많은 것이다. 호스트 파일 시스템 내에서 파일 이름이나 디렉터리이름에 해당하는 경우가 많지만, 그렇지 않은 경우도있다.
  • 대략적으로 말하면, 위의 URL은 " ja.wikipedia.org 라는 컴퓨터에 연결하여 HTTP 의 결정 짐에 따라 / wiki / Wikipedia 라는 데이터를 요청하면 원하는 물건이 손에 들어 오는 "라고 읽을 수 있다.
  • 또한 http 후에 이중 슬래시 / / 두 문자는 의미로 사용되는 기회가 적다. 2009 년 10 월 URL 제안자인 팀 바나즈 = 이는 "가능하다면 제거 싶다"고 발언하고있다 [1] .

일반 형식 편집 ]

일반적으로 URL은

(스키마 이름) : (스키마마다 정해진 무언가의 표현 형식)

형태를하고있다. 스키마 이름은 프로토콜 이름이 사용되는 경우가 많은데 그것을 할 ​​수 없다. RFC 1738 에는 다음 구성표 이름이 정의되어있다.

IANA 에 등록된 체계 [1] 가 공식적으로 인정받은 체계로 간주되며, 상기 외에 20 여개있다. 이 외에도 javascript 체계 (이 뒤에 쓰여진 내용이JavaScript 언어로 작성된 스크립트임을 나타내는)와 같이 널리 보급되어있는 비공식적인 체계도있다.

URL의 체계 이름 나머지 부분은 계획에 대해 정해진 규칙에 따른다. 예를 들어, 전자 메일 주소를 나타내는 mailto 체계 URL의 경우

mailto : example@example.com

과 같이되어 있으며, 앞서 언급한 http 스키마 예제와는 크게 다르다.

http 또는 ftp와 같은 특정 호스트에 IP 연결 장치의 체계는 다음과 같은 일반적인 형식이 사용되고있다.

/ / <user> : <password> @ <host> : <port> / <url-path>
  • <user> - 호스트에 연결할 때 사용할 사용자 이름입니다. 필요가 없으면 선택 사항입니다.
  • <password> - 사용자 이름에 해당하는 암호입니다. 필요가 없으면 선택 사항입니다.
  • <host> - 호스트 이름 , FQDN 또는 IP 주소
  • <port> - 대상 포트 번호입니다. 호스트의 모든 포트에 연결하는 방법을 나타낸다. 체계가 기본 포트 번호를 규정하고있는 경우는 생략해도 좋다.
  • <url-path> - 호스트에 요청 경로입니다. 호스트 파일 시스템 경로로 대응하는 경우가 많지만, 그렇지 않은 경우도있다. 필요가 없으면 선택 사항입니다.

RFC 편집 ]

URL 관련 RFC (및邦訳)에는 다음의 것이있다.

RFC 1983에 따르면 " address "의 어구의 해석은 다음과 같습니다 ( 일반 텍스트 의 원문에 굵은 효과를 부여하여 한 줄에 문자 등의 외관을 조정).

There are four types of Addresses in common use within the Internet. They are email address; IP, internet or Internet address; hardware or MAC address; and URL . See also : email address, IP address, internet address, MAC address, Uniform Resource Locator .

처음 두 문장의大意는 "인터넷의 주소 에는 주로 4 종류가있다. 전자 메일 주소, IP 주소 , MAC 주소 , 그리고 URL 이다 "가되지만, 참고로, TR X 0055:2002에 의한 번역 다음 인용한다 ( 굵게 는 인용자).

인터넷 (the Internet) 내부에서 공통으로 사용하는 주소 에는 4 가지 유형이있다. 그들은 전자 메일 주소, IP 주소 또는 인터넷 주소, 하드웨어 주소 또는 MAC 주소, 그리고 URL 로한다. "2.147 email address", "2.252 IP address", "2.229 internet address", "2.287 MAC address"및 "2.479 Uniform Resource Locator ( URL ) "도 참조 할것.

영구 링크 편집 ]

영구 URL 것. "영구"로 알려진 것도 많다. 주로 콘텐츠 관리 시스템 , 특히 블로그 도구에서 개별 기사에 대한 URL이 업데이트 작업을 반복해도 변하지 않는 구조를 의미한다. 특정 문서 또는 웹페이지에 대한 직접 링크 (직접 링크라고도 함)가 증가함에 따라, 다른 한편으로는 죽은 링크(잘못된 URL)의 대량 발생도 큰 문제가되고 있지만, 이러한 사태를 피하기 위해 컨텐츠 업데이트 작업이 이루어지고, 게다가 업데이트 내역이 저장되는 시스템에서 유효한 콘텐츠에 대한 URL이 변동하지 않도록 데이터에 대한 참조 번호 등을 고정화하는 동시에 참조하는 방법을 단순화하고 URL이 중복되지 않는 것이 바람직하다고한다.

그래서 특별한 방법으로 Apache 웨브 서버 의 경우, mod_rewrite 를 사용하여 URL을 다시 쓰는 PATH_INFO에서 매개 변수를 사용하여 프로그램을 작동 등이있다. 특히 mod_rewrite의 경우는 PHP로 동적 콘텐츠를 정적 html 내용으로 가장할 쉽게 가능하게된다. 또한 PATH_INFO 방식의 경우는 동적 내용을 하위 디렉토리에 보이게 할 수있다. 이 밖에 이른바 휴대 사이트에서 URL을 단축하는 다양한 궁리가 베풀어지게되어있다.어쨌든이 URL뿐만 아니라 원본 파일 확장명을 은폐함으로써 스크립트 를 사진과 음악 파일처럼 위장 수단으로 악용의 우려도 있기 때문에 호스팅 서버 에서는 사용이 제한되는 경우가 많다.

각주 편집 ]

  1. ^ The Web 's Inventor Regrets One Small Thing - NYTimes.com

관련 항목 편집 ]












 



'Web > Common' 카테고리의 다른 글

Atom & RSS(Really Simple Syndication)  (0) 2012.03.24
UX와 UI에 대한 차이점  (0) 2012.03.05
MIME  (0) 2012.02.11
JServ 설치  (0) 2012.02.10
웹 접근성  (0) 2012.02.05
Posted by linuxism
,
Posted by linuxism
,

설명 :Windows NT에 최적화된 다중 처리 모듈
상태 :MPM
모듈명 :mpm_winnt_module
소스 파일 :mpm_winnt.c

개요

이 다중 처리 모듈 (MPM)은 Windows NT의 기본입니다. 하나의 제어 과정을 통해 이것이 하나의 자식 프로세스를 시작하고 자식 프로세스가 요청을 처리하는 데 스레드를 시작합니다.

Win32DisableAcceptEx 지시어

설명 :네트워크 연결의 접수에 accept ()를 AcceptEx 대신 사용
구문 :Win32DisableAcceptEx
기본값 :AcceptEx ()는 기본적으로 활성화되어 있습니다. AcceptEx ()를 비활성화하려면이 지시어를 사용합니다.
장소 :서버 설정 파일
상태 :MPM
모듈mpm_winnt
호환성 :2.0.49 버전 이후에 사용 가능

AcceptEx ()는 Microsoft WinSock v2 API에서 경우에 따라서는 BSD 형식의 accept () API보다 좋은 성능을 발휘합니다. 자주 사용되는 Windows 제품 중 특히 바이러스 스캐너와 VPN 패키지에 버그가 원인 AcceptEx () 의 적절한 동작을 방해하는 것이 있습니다. 다음과 같은 오류가 발생하면이 지시어를 사용하여 AcceptEx () 를 사용하지 않도록하십시오.

[error] (730038) An operation was attempted on something that is not a socket : winnt_accept : AcceptEx failed. Attempting to recover.

============================================================================================

mypda.net 은 XP 서버에 XAMPP 1.6.4 (Apache + php + mysql) 환경에서 구동되고 있습니다.

트래픽이 그다지 없고, 대역폭이 여유로운 상황에서 서버 사양이 P4 3.0 Ghz 에 Ram 1G 환경이라
웹서버가 느려질 이유가 전혀 없음에도 불구하고, 상당히 느린 반응 속도가 고질 적인 문제 였습니다.

현재 한참 개발 중인 Zeroboard XE 문제도 아니었던 것이 Zeroboard 4 나 Wordpress 를 사용할 때에도
상당히 느린 반응 속도를 가지고 있었습니다.

생각 날때마다 mysql 이나 httpd.conf 설정을 살펴 보긴 했지만 해결이 되지 않았었는대, 문제 해결을 위한
가장 기본적인 접근 방법을 잊고 있었더군요. (서버를 만지는걸 어느 순간 신경 안쓰게 된 탓이겠지요)

Apache 의 error 로그를 뒤져 보았습니다.

[Fri Sep 08 04:02:33 2006] [warn] (OS 121)세마포어 시간 초과 기간이 만료되었습니다. : winnt_accept: Asynchronous AcceptEx failed.
[Fri Sep 08 04:02:33 2006] [warn] (OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다. : winnt_accept: Asynchronous AcceptEx failed.


 위와 같은 에러가 정말 많더군요. 이상 적인 CPU 점유율과 느린 반응의 원인이 MS 환경 (Win32- xp,2000 서버) 의 멀티 프로세스 모듈과 어우러진 아파치의 버그 더군요.

해결 방법은 httpd.conf 에 다음과 같은 라인을 추가 하는 것 입니다.

Win32DisableAcceptEx


"Win32DisableAcceptEx"  이 라인 핵심 라인 입니다. 

추가 시켜 주시고 아파치를 재구동 하면 됩니다.

http://www.mydigitallife.info/2006/03/09/winnt_accept-asynchronous-acceptex-failed-error-in-apache-log/  (영문)

이곳에서 확인하시면 서버 안정성에 문제를 발생 시킬 수도 있다고는 하는대, 서비스가 엄청나게
느려지는 것 보다는 나아서 httpd.conf 를 바꾸고 반응 속도를 보았더니 속이 다 시원합니다.

acceptEX 는 MS 가 만든 확장 Network API 라더군요. Linux 나 다른 OS 환경에서는 발생하지 않는 오류입니다.
개인적인 생각에 확장 API 를 사용하지않는 설정 이기 때문에 안정성과는 큰 관련이 없을 것이라 여겨집니다.

오류가 나온지 한참 되었는대도 아파치에서 수정되지 않는 걸 보면 MS 쪽 문제 일려나요


<추가>

Win32DisableAcceptEx 는 Apache version 2.0.49 부터 이후 버전에만 가능합니다

Apache 1.X 버전을 사용하고 있는 분들은 다른 해결책을 찾으셔야 합니다.


출처 - http://www.mypda.net/1151 


===============================================================================================

윈도우2008에 apche사용하는 서버 확인중발견.

웹사이트가 현저히 느리며 아파치가 반복적으로 죽는 현상.

에러로그를 확인해보니. 

(OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다.  : winnt_accept: Asynchronous AcceptEx failed.
(OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다.  : winnt_accept: Asynchronous AcceptEx failed.
(OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다.  : winnt_accept: Asynchronous AcceptEx failed.
(OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다.  : winnt_accept: Asynchronous AcceptEx failed.
(OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다.  : winnt_accept: Asynchronous AcceptEx failed.

 

반복적으로뜬다.

 

확인해보니

"PHP와 Apache2.2를 WIndows기반하에서 운영할 경우에 발생할 수 있는 Bug"

해결하기위해선 httpd.conf파일 수정해야한다

 

 

Win32DisableAcceptEx     <ㅡ 이부분추가해준다

User daemon
Group daemon

 

안되면

 

<IFModule mpm_winnt_module>

Win32DisableAcceptEx             <ㅡ 추가

</IFModule mpm_winnt_module>

 

해도 안되면

 

<IfModule !mpm_netware_module>

Win32DisableAcceptEx       <ㅡ 추가
<IfModule !mpm_winnt_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User nobody
Group nobody

</IfModule>
</IfModule>

 

 

아..두시간동안 이걸 못찾았다...

에러로그를 봤지만 검색해도 안나올거같아서 그냥넘어갔는데

로그는 절대 무시하지말자!!!!!!!!!!!!!!!!!!!!!! 

출처 - http://www.ssongacademy.com/?document_srl=648 
Posted by linuxism
,