절대 및 상대 URL


214

상대 URL (그림, CSS 파일, JS 파일 등)과 절대 URL의 두 가지 유형의 URL의 차이점을 알고 싶습니다.

또한 어느 것이 더 나은가요?

답변:


191

일반적으로 상대 URL을 사용하는 것이 가장 좋은 방법으로 간주되므로 웹 사이트가 현재 배포 된 기본 URL에 바인딩되지 않습니다. 예를 들어, 수정하지 않고 공개 호스트뿐만 아니라 로컬 호스트에서도 작업 할 수 있습니다.


6
+1 동의합니다. CDN을 사용하거나 콘텐츠 웹 사이트를 변경해야하는 경우와 같이 절대 URL이 더 나은 경우가 몇 번있을 수 있습니다. 도메인 이름을 검색하는 것이 상대 URL IMHO를 검색하는 것보다 훨씬 쉽습니다.
Sune Rievers

67
유지 관리를 위해 도메인 이름없이 절대 URL을 사용하는 것이 더 쉬울 수 있습니다. 즉, StackOverflow에서 절대 URL '/ questions / 2005079 / absolute-vs-relative-urls'를 사용하여이 질문에 연결하십시오. 앞의 '/'는 URL을 절대적으로 만듭니다. 이 접근 방식은 파일을 이동하거나 프로젝트의 디렉토리 구조를 변경할 때 유용합니다.
Mike

10
@Baumr하지만 그렇게 할 수 있습니까? 나는 분명히 그 방법을 사용하는 팬 / 지지자이지만 더 큰 프레임 워크에 들어가고 큰 리팩토링은 악명 높고 무서운 작업입니다. 심지어 스마트 IDE에서도 스위치를 모두 전환했을 수도 있지만 스트링으로 코드화되거나 동적으로 생성되는 경우 종종 누락 될 수 있습니다. 최악의 부분은 일반적으로 누락 된 참조가 솔루션이 프로덕션으로 돌아갈 때까지 포착되지 않는다는 것입니다. :(
dudewad

31
@ 왜 루트 상대 URL을 '절대' 라고 부르 겠습니까?
törzsmókus

4
@ törzsmókus 좋은 질문입니다. 그것은 내가 편집 할 수 없으며 수년 전에 루트 상대라는 용어를 발견하기도했습니다.
Mike

237

절대 또는 상대 URL을 사용해야합니까?

절대 URL로 구성표 (예 : http / https) 및 호스트 이름 (예 : yourdomain.com)을 포함한 URL을 유지하지 않으면 로컬 리소스의 경우 유지 관리 및 디버그가 끔찍하기 때문에 그렇게하지 않습니다 (로컬 리소스의 경우).

코드의 어느 곳에서나 절대 URL을 사용했다고 가정 해 봅시다 <img src="http://yourdomain.com/images/example.png">. 이제 당신이 갈 때 일어날 일 :

  • 다른 체계로 전환하십시오 (예 : http-> https)
  • 도메인 이름 전환 (test.yourdomain.com-> yourdomain.com)

첫 번째 예에서는 페이지에서 안전하지 않은 콘텐츠가 요청되었다는 경고 메시지가 표시됩니다. 모든 URL이 http (: //yourdomain.com/images/example.png)를 사용하도록 하드 코딩되었으므로 그리고 https를 통해 페이지를 실행할 때 브라우저는 정보 유출을 방지하기 위해 모든 리소스가 https를 통해로드 될 것으로 예상합니다.

두 번째 예에서 사이트를 테스트 환경에서 라이브로 배치하면 모든 리소스가 여전히 라이브 도메인 대신 테스트 도메인을 가리키고 있음을 의미합니다.

따라서 절대 또는 상대 URL을 사용할 지에 대한 질문에 대답하려면 항상 상대 URL (로컬 리소스의 경우)을 사용하십시오.

다른 URL의 차이점은 무엇입니까?

먼저 사용할 수있는 다양한 유형의 URL을 살펴 보겠습니다.

  • http://yourdomain.com/images/example.png
  • //yourdomain.com/images/example.png
  • /images/example.png
  • images/example.png

이 URL은 서버에서 어떤 리소스에 액세스하려고합니까?

아래 예제에서 웹 사이트가 서버의 다음 위치에서 실행되고 있다고 가정합니다 /var/www/mywebsite.

http://yourdomain.com/images/example.png

위의 (절대) URL이 리소스에 액세스하려고합니다 /var/www/website/images/example.png. 이 유형의 URL은 위에서 설명한 이유로 자신의 웹 사이트에서 리소스를 요청하기 위해 항상 피하고 싶은 것 입니다. 그러나 그 자리가 있습니다. 예를 들어 웹 사이트가 http://yourdomain.com있고 https를 통해 외부 도메인에서 리소스를 요청하려는 경우이를 사용해야합니다. 예 https://externalsite.com/path/to/image.png.

//yourdomain.com/images/example.png

이 URL은 사용 된 현재 체계를 기반으로하며 외부 리소스 (이미지, 자바 스크립트 등)를 포함 할 때 거의 항상 사용해야합니다.

이 유형의 URL은 현재 페이지 구성표를 사용합니다. 이는 귀하가 페이지에 http://yourdomain.com있고 해당 페이지에 이미지 <img src="//yourdomain.com/images/example.png">의 URL이에서 확인할 이미지 태그임을 의미합니다 http://yourdomain.com/images/example.png.
페이지에 http**s**://yourdomain.com있고 해당 페이지에 이미지 태그가 있으면 이미지 <img src="//yourdomain.com/images/example.png">의 URL이에서 확인됩니다 https://yourdomain.com/images/example.png.

이것은이 필요하지 않을 때 HTTPS를 통해로드 자원을 방지하고이 때 자동으로 HTTPS를 통해 확인 리소스를 요청하게 됩니다 필요합니다.

위 URL은 서버 측에서 이전 URL과 동일한 방식으로 해결됩니다.

위의 (절대) URL이 리소스에 액세스하려고합니다 /var/www/website/images/example.png.

/images/example.png

지역 자원의 경우이를 참조하는 선호되는 방법입니다. /var/www/mywebsite웹 사이트 의 문서 루트 ( )를 기반으로하는 상대 URL 입니다. 이것은 당신이 <img src="/images/example.png">그것을 가지고있을 때 항상 해결 될 것을 의미 합니다 /var/www/mywebsite/images/example.png.

어느 시점에서 도메인을 전환하기로 결정한 경우 도메인이 상대적이기 때문에 여전히 작동합니다.

images/example.png

이전 URL과 조금 다르지만 상대 URL이기도합니다. 이 URL은 현재 경로와 관련이 있습니다. 이것이 의미하는 바는 사이트의 위치에 따라 다른 경로로 해석된다는 것입니다.

예를 들어 페이지에 있고 페이지 http://yourdomain.com를 사용 <img src="images/example.png">하는 경우 서버에서 /var/www/mywebsite/images/example.png예상대로 해결 되지만 페이지에 http://yourdomain.com/some/path있고 정확히 동일한 이미지 태그를 사용하면 갑자기 해결됩니다 /var/www/mywebsite/some/path/images/example.png.

무엇을 언제 사용해야합니까?

외부 리소스를 요청할 때 스키마를 상대적으로 강요하지 않는 한 스키마와 관련된 URL을 사용하고 로컬 리소스를 처리 할 때 문서 루트를 기준으로 상대 URL을 사용하려고합니다.

예제 문서 :

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <link href='//fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700' rel='stylesheet' type='text/css'>
        <link href="/style/style.css" rel="stylesheet" type="text/css" media="screen"></style>
    </head>
    <body>
        <img src="/images/some/localimage.png" alt="">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
    </body>
</html>

일부 (킨다) 복제


2
절대 URL을 사용하면 상대 URL을 사용할 때보 다 페이지가 더 빨리로드됩니까? (때마다 상대 경로를 해결에 소요?)
shasi kanth

2
가능한 차이는 너무 적기 때문에 측정 가능한지 걱정할 것이 아닙니다.
PeeHaa

3
프로토콜없이 Google Jquery를 포함하는 예 : <script src = "// ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </ script>
shasi kanth

8
이 답변에서는 언급 된 각 문제를 해결하는 절대 URL이 동적으로 생성되지 않는다고 가정합니다.
없음

2
J.Money가 정확합니다. 최신 웹 프레임 워크에는 "역 라우팅"개념이있어 페이지 중 하나에서 다른 페이지로 URL을 만들 수 있습니다 (동일한 웹 사이트의 다른 페이지 여야 함). 이를 통해 URL에 이름을 지정한 다음 URL 대신이 이름을 사용할 수 있습니다. 이렇게하면 URL을 변경하려는 경우 URL을 한 곳에서 변경할 수 있습니다. 다른 곳에서는 이름으로 만 URL을 참조하기 때문입니다.
Kevin Wheeler

65

다음을 참조하십시오 : http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax

foo://username:password@example.com:8042/over/there/index.dtb;type=animal?name=ferret#nose
\ /   \________________/\_________/ \__/            \___/ \_/ \_________/ \_________/ \__/
 |           |               |       |                |    |       |           |       |
 |       userinfo         hostname  port              |    |       parameter query  fragment
 |    \_______________________________/ \_____________|____|____________/
scheme                  |                               | |  |
 |                authority                           |path|
 |                                                    |    |
 |            path                       interpretable as filename
 |   ___________|____________                              |
/ \ /                        \                             |
urn:example:animal:ferret:nose               interpretable as extension

절대 URL은 "경로"부분 앞에있는 부분을 포함합니다. 즉, 구성표 ( httpin http://foo/bar/baz) 및 호스트 이름 ( fooin in http://foo/bar/baz) (및 선택적으로 port, userinfo 및 port)이 포함됩니다.

상대 URL은 경로로 시작합니다.

절대 URL은 절대적입니다. 리소스의 위치는 URL 자체 만보고 확인할 수 있습니다. 상대 URL은 불완전합니다.이를 해결하려면 체계와 호스트 이름이 필요하며 일반적으로 현재 컨텍스트에서 가져옵니다. 예를 들어 웹 페이지의

http://myhost/mypath/myresource1.html

당신은 그렇게 링크를 넣을 수 있습니다

<a href="pages/page1">click me</a>

href링크 의 속성에서 상대 URL이 사용되며 클릭하면 해당 URL을 확인하기 위해 해결해야합니다. 이 경우 현재 컨텍스트는

http://myhost/mypath/myresource1.html

따라서 스키마, 호스트 이름 및 이들의 주요 경로를 가져와 앞에 추가 pages/page1하여

http://myhost/mypath/pages/page1

링크가 다음과 같을 경우 :

<a href="/pages/page1">click me</a>

( /URL 시작 부분에 표시됨) 다음과 같이 해결되었을 것입니다.

http://myhost/pages/page1

선행 /은 호스트의 루트를 나타 내기 때문 입니다.

웹 응용 프로그램에서는 앱에 속한 모든 리소스에 상대 URL을 사용하는 것이 좋습니다. 이렇게하면 페이지 위치를 변경해도 모든 것이 계속 작동합니다. 외부 리소스 (애플리케이션 외부의 페이지 일 수도 있고 컨텐츠 전달 네트워크를 통해 제공하는 정적 컨텐츠 일 수도 있음)는 항상 절대 URL을 사용하도록 지시해야합니다. 다른 서버에 상주합니다.


9
상대 URL은 URL 경로로 시작할 필요 가 없습니다 . //example.com/…, ?foobar#foobar도 상대 URL이며, (대한 확인을 잘 URL 경로로 시작하지 않는 ?foobar당신은 그것이 시작 않습니다 말할 수있는 경로).
Gumbo

@Gumbo, //example.com/…유형 URL은 상대적입니까? 그것은 나에게 새로운 것입니다.
törzsmókus

3
@ törzsmókus RFC 2396의 관점에서 :“상대 URI 참조는 스키마 이름으로 시작하지 않는다는 점에서 절대 URI와 구별됩니다.”
Gumbo

50

http://site.ru/shop 폴더에 파일이있는 하위 사이트를 작성한다고 가정 하십시오 .

1. 절대 URL

Link to home page
href="http://sites.ru/shop/"

Link to the product page
href="http://sites.ru/shop/t-shirts/t-shirt-life-is-good/"

2. 상대 URL

Link from home page to product page
href="t-shirts/t-shirt-life-is-good/"

Link from product page to home page
href="../../"

상대 URL은 절대 URL보다 짧아 보이지만 사이트의 모든 페이지에서 링크를 변경하지 않고 사용할 수 있으므로 절대 URL이 더 바람직합니다.

중간 사례

우리는 "절대적으로"절대 URL과 "절대적으로"상대 URL이라는 두 가지 극단적 인 경우를 고려했습니다. 그러나이 세상의 모든 것은 상대적입니다. 이것은 URL에도 적용됩니다. 절대 URL에 대해 말할 때마다 항상 상대 URL을 지정해야합니다.

3. 프로토콜 기준 URL

Link to home page
href="//sites.ru/shop/"

Link to product page
href="//sites.ru/shop/t-shirts/t-shirt-life-is-good/"

Google은 그러한 URL을 권장합니다. 그러나 이제는 일반적으로 http : //와 https : //가 서로 다른 사이트로 간주됩니다.

4. 루트 상대 URL

즉, 도메인의 루트 폴더를 기준으로합니다.

Link to home page
href="/shop/"

Link to product page
href="/shop/t-shirts/t-shirt-life-is-good/"

모든 페이지가 동일한 도메인 내에 있으면 좋은 선택입니다. 사이트를 다른 도메인으로 이동할 때는 URL에서 도메인 이름을 대량으로 교체 할 필요가 없습니다.

5. 기본 기준 URL (홈 페이지 기준)

<base> 태그는 기본 URL을 지정하며 모든 기본 링크와 앵커에 자동으로 추가됩니다. 기본 태그는 절대 링크에 영향을 미치지 않습니다. 기본 URL로 <base href = "http://sites.ru/shop/"> 홈페이지를 지정합니다.

Link to home page
href=""

Link to product page
href="t-shirts/t-shirt-life-is-good/"

이제 사이트를 도메인뿐만 아니라 하위 폴더로 이동할 수 있습니다. URL은 상대적으로 보이지만 실제로는 절대적임을 명심하십시오. 특히 앵커에주의하십시오. 현재 페이지 내에서 이동하려면 href = "# comments"가 아닌 href = "t-shirts / t-shirt-life-is-good / # comments"를 작성해야합니다. 후자는 홈페이지에 게재됩니다.

결론

내부 링크의 경우 기본 상대 URL (5)을 사용합니다. 외부 링크 및 뉴스 레터에는 절대 URL (1)을 사용합니다.


1
좋은 대답입니다. 사람들이 볼 수 없을 정도로 페이지에 너무 낮게 표시됩니다. 다른 답변에 대한 많은 의견에 답변합니다.
oligofren

24

명시 적으로 논의해야 할 세 가지 유형이 있습니다. 실제로 URL은 더 낮은 수준에서 처리되도록 추상화되었지만 개발자가 단일 URL을 직접 작성하지 않고도 평생 동안 사용할 수 있다고 말하고 싶습니다.

순수한

절대 URL은 코드를 프로토콜 및 도메인에 연결합니다. 이는 동적 URL로 극복 할 수 있습니다.

<a href=“https://dev.example.com/a.html?q=”>https://dev.example.com/a.html?q=</a>

절대 장점 :

  1. 제어 -하위 도메인 및 프로토콜을 제어 할 수 있습니다. 불분명 한 하위 도메인을 통해 들어오는 사람들은 적절한 하위 도메인으로 유입됩니다. 보안과 비보안을 적절히 전환 할 수 있습니다.

  2. 구성 가능 -개발자는 절대적인 것을 좋아합니다. 절대 URL을 사용할 때 깔끔한 알고리즘을 디자인 할 수 있습니다. 단일 구성 파일에서 단일 변경으로 URL을 사이트 전체에서 업데이트 할 수 있도록 URL을 구성 할 수 있습니다.

  3. Clairvoyance- 당신은 당신의 위치를 ​​긁는 사람들을 검색하거나 추가 외부 링크를 선택할 수 있습니다.


뿌리 친척

루트 상대 URL은 코드를 기본 URL에 연결합니다. 이는 동적 URL 및 / 또는 기본 태그 로 극복 할 수 있습니다 .

<a href=“/index.php?q=”>.example.com/index.php?q=</a>

루트 상대 프로 :

  1. 구성 가능 -기본 태그는 선택한 도메인을 기준으로하여 도메인을 전환하고 템플릿을 쉽게 구현할 수 있도록합니다.

상대적인

상대 URL은 코드를 디렉토리 구조에 연결합니다. 이것을 극복 할 방법이 없습니다. 상대 URL은 파일 시스템에서만 디렉토리를 통과하거나 멘탈 작업의 바로 가기로 유용합니다.

<a href=“index.php?q=”>index.php?q=</a>
<link src=“../.././../css/default.css” />

상대 단점 :

  1. 혼란 -그 점은 몇 점입니까? 얼마나 많은 폴더입니까? 파일은 어디에 있습니까? 왜 작동하지 않습니까?

  2. 유지 관리 -파일이 실수로 이동하여 리소스로드가 중단 된 경우 링크가 사용자를 잘못된 페이지로 보내면 양식 데이터가 잘못된 페이지로 보내질 수 있습니다. 파일을 이동해야하는 경우로드를 종료 할 모든 자원과 올바르지 않은 모든 링크를 업데이트해야합니다.

  3. 스케일링 안 함 -웹 페이지가 복잡해지고 뷰가 여러 페이지에서 재사용되기 시작하면 상대 링크는 포함 된 파일을 기준으로합니다. 모든 페이지에있을 HTML의 탐색 스 니펫이있는 경우 상대는 많은 다른 장소와 관련이 있습니다. 사람들이 템플릿을 만들 때 가장 먼저 인식하는 것은 URL을 관리 할 방법이 필요하다는 것입니다.

  4. 컴퓨터 -그들은 당신의 브라우저에 의해 구현됩니다 (RFC에 따라). RFC3986의 5 장을 참조하십시오 .

  5. 웁스! -오류나 오타가 있으면 스파이더 트랩이 발생할 수 있습니다.


노선의 진화

개발자들은 여기서 논의되는 의미에서 URL 작성을 중단했습니다. 모든 요청은 웹 사이트의 색인 파일에 대한 것이며 경로라는 쿼리 문자열을 포함합니다. 라우트는 애플리케이션에 생성 될 컨텐츠를 알려주는 미니 URL로 생각할 수 있습니다.

<a href="<?=Route::url('named_url', array('first' => 'my', 'last' => 'whacky'))?>">
    http://dev.example.com/index.php/my:whacky:url
</a>

노선 전문가 :

  1. 절대 URL의 모든 장점.
  2. URL에 문자를 사용하십시오.
  3. 더 많은 제어 (SEO에 적합).
  4. 알고리즘 적으로 URL을 생성하는 기능 이를 통해 URL을 구성 할 수 있습니다. URL 변경은 단일 파일에서 단일 변경입니다.
  5. 404 찾을 수 없습니다. 대체 경로는 사이트 맵 또는 오류 페이지를 표시 할 수 있습니다.
  6. 응용 프로그램 파일에 대한 간접 액세스의 편리한 보안. 가드 선언문은 모든 사람이 올바른 채널을 통해 도착했는지 확인할 수 있습니다.
  7. MVC 접근법의 실용성.

나의 테이크

대부분의 사람들은 어떤 방식 으로든 프로젝트에서 세 가지 양식을 모두 사용합니다. 열쇠는 그것들을 이해하고 과제에 가장 적합한 것을 선택하는 것입니다.


프로토콜 기준 URL이 누락되어 완전히 절대 URL보다 훨씬 낫습니다. 구성표를 업그레이드 할 때 (대부분 HTTPS로) 절대 URL은 문제가되며 상대 URL은이 문제를 해결합니다.
Tobu

@Tobu HTTPS를 통해 모든 것을 제공하십시오.
없음

참고 : 위의 코드 예제에서 대부분 인쇄상의 따옴표를 사용한 것 같습니다. 고칠 수도 있습니다.
domsson

그리고 어떤 유형의 URL이 먼저 점이 있습니까? 예 : "./index.html"
Narvalex

Clairvoyance에 대해 좀 더 자세히 설명해 주 시겠습니까? "루트 상대"URL을 사용하는 경우 사람들이 사이트를 스크랩하는 것을 볼 수없는 이유는 무엇입니까?
Lovethenakedgun

6

웹 사이트에서 사용하는 경우 웹 사이트를 다른 도메인 이름으로 이동하거나 로컬로 디버깅 해야하는 경우 이와 같은 상대 URL을 사용하는 것이 좋습니다.

stackoverflow가 수행중인 작업을 살펴보십시오 (firefox의 Ctrl + U).

<a href="/users/recent/90691"> // Link to an internal element

어떤 경우에는 절대 URL을 사용합니다.

<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=5934">

...하지만 이것은 속도를 향상시키는 가장 좋은 방법입니다. 귀하의 경우, 당신이 그런 일을하는 것처럼 보이지 않으므로 걱정하지 않아도됩니다.


6

나는 여기에 대다수와 동의하지 않을 것입니다.

나는 프로젝트가 적은 개발자 (또는 자신 만)로 작을 때 상자 밖에서 생각하지 않고 빠르게 무언가를 시작하고 실행하려고 할 때 상대 URL 구성표가 "정확"하다고 생각합니다.

그러나 도메인과 프로토콜을 항상 전환하는 크고 기름진 시스템에서 작업을 시작하면 더 우아한 접근 방식이 필요합니다.

절대 URL과 상대 URL을 본질적으로 비교하면 절대가 우선합니다. 왜? 끊어지지 않기 때문입니다. 이제까지. 절대 URL은 정확히 그것이 말하는 것입니다. catch는 절대 URL을 유지해야 할 때입니다.

절대 URL 연결에 대한 약한 접근 방식은 실제로 전체 URL을 하드 코딩하는 것입니다. 좋은 생각이 아니며 아마도 사람들이 왜 그들을 유지하기 위해 위험하고 악하고 성가신 것으로 보는지에 대한 범인 일 것입니다. 더 좋은 방법은 사용하기 쉬운 URL 생성기를 작성하는 것입니다. 이것들은 작성하기 쉽고 믿을없을만큼 강력합니다-프로토콜을 자동으로 감지하고 쉽게 구성 할 수 있습니다 (전체적으로 URL을 한 번 설정하면 전체 응용 프로그램에 대해 URL을 설정) 등 도메인을 자체적으로 주입합니다. 좋은 점 : 상대 URL을 사용하여 코딩을 계속하고 런타임에 응용 프로그램이 URL을 전체 절대 값으로 즉시 삽입합니다. 대박.

실제로 모든 현대 사이트가 일종의 동적 백엔드를 사용하는 방식을 고려할 때 해당 사이트가 그렇게하는 것이 가장 중요합니다. 절대 URL은 사용자가 가리키는 위치를 확실하게하는 것 이상으로 SEO 성능을 향상시킬 수 있습니다.

절대 URL이 어떻게 든 페이지의 로딩 시간을 변경한다는 주장은 신화라고 덧붙일 수 있습니다. 도메인의 무게가 몇 바이트 이상이고 1980 년대에 전화 접속 모뎀을 사용하고 있다면 반드시 확인하십시오. 그러나 그것은 더 이상 사실이 아닙니다. https://stackoverflow.com/ 은 25 바이트 인 반면 사이트의 탐색 영역에 사용하는 "topbar-sprite.png"파일의 무게는 9 + kb입니다. 즉, 추가 URL 데이터는 스프라이트 파일과 비교하여로드 된 데이터의 0.2 %이며 해당 파일은 큰 성능 저하로 간주되지 않습니다.

크고 최적화되지 않은 전체 페이지 배경 이미지는로드 시간이 훨씬 느려질 수 있습니다.

상대 URL을 사용해서는 안되는 흥미로운 게시물은 다음과 같습니다. http://yoast.com/relative-urls-issues/

예를 들어, 친척과 관련하여 발생할 수있는 문제는 때때로 서버 매핑 (크고 엉망인 프로젝트에 대해 알려줍니다)이 파일 이름과 일치하지 않으며 개발자가 그렇지 않은 상대 URL에 대해 가정 할 수 있다는 것입니다. 진실. 방금 오늘 내가 진행중인 프로젝트에서 그것을 보았고 전체 페이지가 다운되었습니다.

또는 개발자가 포인터를 전환하는 것을 잊었을 때 갑자기 Google이 전체 테스트 환경을 색인화했습니다. 으악-중복 콘텐츠 (SEO에 나쁜)!

절대는 위험 할 수 있지만 올바르게 사용하고 빌드중단 할 수없는 방식으로 사용하면 더욱 신뢰할 수있는 것으로 입증됩니다. 위의 기사를 보면 Wordpress URL 생성기가 정말 멋진 이유가 많이 있습니다.

:)


1
절대 URL을 말할 때 전체 URL을 사용하거나 /기본 경로에 연결하는 데 사용 합니까? 즉, /products/wallets/thing.html같은 반대 thing.html에 반대http://www.myshop.com/products/wallets/thing.html
브래들리 홍수

"/"앞에 붙는 것은 항상 도메인 루트와 관련이 있다고 생각합니다. 따라서 도메인이 "www.example.com"인 경우 "/image1.jpg"로 코딩 된 모든 참조는 "www.example.com/image1.jpg"로 해석됩니다. 선행 슬래시가없는 항목은 요청 루트를 기준으로 해석됩니다. "절대 URL"이라고 말하면 정규화 된 URL을 의미합니다. 인터넷을 통해 MSDN 링크를 보내려고
울부 짖었

많은 사람들이 아직 그것을 깨닫지 못했지만 이것은 현재의 모범 사례입니다. echo Route::url('route_name')사이트 URL을 사용하여 절대 URL을 작성하고 HTTPS를 통한 옵션으로 정보를 라우팅하는 데 사용할 수있는 Kohana와 같은 경로를 좋아 합니다.
없음

전화 접속 모뎀이 80 년대로 돌아 오지 않았다는 것을 지적 할 필요가 있다고 생각합니다. 전화 접속이나 초고가의 매우 한정된 위성 인터넷 이외의 다른 선택의 여지가없는 사람들이 많이 있습니다. 당신이 가난하다면, 무료 전화 접속보다 더 좋은 것은 무엇입니까? 전화 접속이 더 이상 존재하지 않는다고 믿는 개발자를 보는 것이 정말 귀찮습니다. 전화 접속시 내 은행 웹 사이트에 로그인하는 데 5-10 분 (!!!)이 소요될 수 있습니다 ... Paypal, Amazon 및 Ebay는 그다지 좋지 않습니다. Egg Cave (가상 애완 동물 사이트)와 Facebook은 전화 접속에서 작동하지 않습니다. 그것은 농촌 지역에 사는 많은 사람들에게 영향을 미칩니다.
Kat Cox

예, 전화 접속을하는 사람이 있지만 대다수의 사용자는 전화 접속을 하지 않습니다 . 인구 통계와도 관련이 있습니다. 초 거대 성능이 뛰어난 결과를 얻으려면 URL에서 도메인을 잘라내십시오. 그러나 그 의견의 주요 요점은 성능이 일반적으로 다른 영역에서 발견된다는 점을 강조하는 것이 었 습니다. 단일 이미지를 최적화하여 URL 바이트에서 손실 된 모든 전송 시간을 얻을 수 있습니다. 그러나 20 % 이상의 사용자가 전화 접속을하는 경우에는 이것이 중요하다고 생각합니다. 2015 년에 그리고 모든 실제적인 목적으로, 그것은 사실이 아닙니다.
dudewad

4

대부분의 경우 상대 URL을 사용하는 것이 좋습니다. 즉, 이식성이 뛰어납니다. 즉, 사이트를 들어 올려 즉시 작동 할 수있는 위치에 배치하여 디버깅 시간을 줄일 수 있습니다.

절대 URL과 상대 URL에 대한 꽤 괜찮은 기사가 있습니다.


4

URL 스키마 및 스키마의 특정 부분 (로 시작하는 URL http://, https://, ftp://등)의 절대적 URL이다.

다른 URL은 상대 URL이며, 달리 선언되지 않은 경우 참조가 사용되는 리소스의 URL 인 상대 URL을 확인하여 (따라서 의존하는) 기본 URL이 필요합니다.

살펴보세요 부록 C - RFC 2396 상대 URL를 해결 예를 들어.


3

www.yourserver.com 사이트가 있다고 가정 해 봅시다. 웹 문서의 루트 디렉토리에는 이미지 하위 디렉토리가 있고 myimage.jpg가 있습니다.

절대 URL은 문서의 정확한 위치를 정의합니다 (예 :

http://www.yourserver.com/images/myimage.jpg

상대 URL은 예를 들어 이미지가있는 루트 웹 디렉토리에있는 경우 현재 디렉토리에 상대적인 위치를 정의합니다 .

images/myimage.jpg

(그 루트 디렉토리에 상대적)

가능하면 항상 상대 URL을 사용해야합니다. 사이트를 www.anotherserver.com으로 이동하면 www.yourserver.com을 가리키는 모든 절대 URL을 업데이트해야합니다. 상대 URL은 그대로 작동합니다.


0

상대 URI 확인을 지원하는 모든 시스템에 대해 상대 URI와 절대 URI 모두 동일한 목표를 제공합니다. 참조. 그리고 그들은 상호 교환하여 사용할 수 있습니다. 따라서 경우마다 다르게 결정할 수 있습니다. 기술적으로 동일한 참조 를 제공합니다 .

정확하게 말하면, 각각의 상대 URI에는 이미 절대 URI가 있습니다. 그리고 그것은 상대 URI가 해결되는 기본 URI입니다. 따라서 상대 URI는 실제로 절대 URI 위에있는 기능입니다.

그렇기 때문에 상대 URI를 사용하면 절대 URI만으로 더 많은 것을 할 수 있습니다. 이는 절대 URI에 비해 유지 관리가 유연하지 않은 정적 웹 사이트에 특히 중요합니다.

상대적 URI 분석의 이러한 긍정적 인 효과는 동적 웹 애플리케이션 개발에도 활용 될 수 있습니다. 동적 환경에서 도입하는 비 유연성 절대 URI는 처리하기가 더 쉬우므로 URI 분석에 대해 확신이없는 일부 개발자 및 URI를 올바르게 구현하고 관리하는 방법 (항상 쉬운 것은 아님)이 종종 절대 사용을 선택하는 경우 융통성을 해결하기 위해 다른 동적 기능 (예 : URI 접두사를 포함하는 구성 변수)을 도입 할 수 있으므로 웹 사이트의 동적 부분에있는 URI

그렇다면 절대 URI를 사용하면 어떤 이점이 있습니까? 기술적으로는 없지만 내가 말하고자하는 것 : 상대 URI는 소위 절대 기본 URI에 대해 해결되어야하기 때문에 더 복잡합니다. 해결 방법은 수년 이후 엄격하게 정의되므로 URI 확인에 실수가있는 클라이언트를 실행할 수 있습니다. 절대 URI는 해결이 필요하지 않으므로 절대 URI를 사용하면 상대 URI 확인으로 잘못된 클라이언트 동작이 발생할 위험이 없습니다. 그렇다면 그 위험은 실제로 얼마나 높습니까? 글쎄, 그것은 매우 드 rare니다. 상대 URI 확인에 문제가있는 인터넷 브라우저 하나만 알고 있습니다. 그리고 그것은 일반적으로가 아니라 매우 모호한 경우에만있었습니다.

HTTP 클라이언트 (브라우저) 옆에는 하이퍼 텍스트 문서 나 코드 작성자도 더 복잡 할 수 있습니다. 여기서 절대 URI는 브라우저 주소 표시 줄에 그대로 입력 할 수 있으므로 테스트하기가 쉽다는 이점이 있습니다. 그러나 1 시간 작업이 아니라면 절대 및 상대 URI 처리를 실제로 이해하여 상대 링크의 이점을 실제로 활용할 수있는 것이 가장 유리합니다.


-4

같은 사이트의 비트를 같은 사이트의 다른 비트를 가리키는 상대 URL을 진심으로 추천합니다.

동일한 사이트에 있더라도 HTTPS에 대한 변경에는 절대 URL이 필요하다는 것을 잊지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.