티스토리 뷰
728x90
반응형
URL 문법
URL을 사용하여 인터넷 상의 모든 리소스를 찾을 수 있지만 리소스들은 scheme마다 접근 방법이 다릅니다.
💡 scheme
- scheme은 리소스를 가져오려면 어떤 프로토콜을 사용해서 서버에 접근해야 하는지 알려주는 중요한 정보입니다.
- scheme은 알파벳으로 시작해야합니다.
💡 사용자 이름과 비밀번호
- 몇몇의 scheme은 리소스에 접근하기 위해 사용자 이름을 필요로 합니다.
💡 호스트와 포트
- 호스트는 접근하려고 하는 리소스를 가진 인터넷상의 호스트 장비를 말합니다.(도메인명이나 IP주소)
- 포트는 서버가 열어놓은 네트워크 포트를 말합니다.
💡 경로
- URL의 경로는 얻고자 하는 리소스가 서버의 어느 위치에 존재하는지 알려줍니다.
- HTTP URL에서 경로는 '/' 문자를 기준으로 나뉩니다.
💡 파라미터(Matrix parameter)
- URL의 파라미터는 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용합니다.
- 파라미터는 이름/값 쌍으로 구성되며 ';' 문자를 기준으로 구분하여 URL에 기술합니다.
- 리소스에 접근하는데 필요한 어떤 추가 정보를 전달할 수 있습니다.
💡 질의(Query string)
- 질의는 물음표(?) 뒤에 붙일 수 있는 key=value의 값입니다. 예를들어 tistory.com/newpost?type=post의 URL이 있다면 ? 뒤에 있는 있는 key=value 입니다.
- Query String과 Matrix parameter의 차이점은?
💡 프래그먼트
- 리소스의 특정 부분을 가리킬 수 있도록 지시할 수 있습니다.
- 일반적으로 HTTP 서버는 객체의 일부가 아닌 전체만을 다루기 때문에 클라이언트는 서버에 플래그먼트를 전달하지 않습니다. 브라우저가 서버로부터 응답값을 받아 프래그먼트를 사용하여 보고자하는 리소스의 특정 부분부터 보여줍니다.
- 서버는 객체를 전체 단위로만 전송하기 때문에 URL 프래그먼트는 클라이언트에서만 사용됩니다.
단축 URL
💡 상대 URL
- URL은 상대 URL과 절대 URL로 나뉩니다.
- 절대 URL은 리소스에 접근하는데 필요한 모든 정보를 가지고 있습니다. 예를들어 naver.com/auth/login 으로 표현할 수 있습니다.
- 상대 URL은 모든 정보를 담고 있지 않습니다. 상대 URL을 통해 특정 리소스에 접근하기 위해서는 기저(base)라고 하는 다른 URL을 사용해야 합니다.
💡 상대 경로 표기법
- / : root 경로를 의미합니다.
- ./ : 현재 디렉토리를 의미합니다.
- ../ : 부모 디렉토리를 의미합니다.
<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<a href="./logout">logout</a>
</body>
</html>
안전하지 않은 문자
- 안전한 전송이란 정보가 유실될 위험없이 URL을 전송할 수 있다는 것을 의미합니다.
- URL 설계자들은 모든 인터넷 프로토콜로 URL이 전송되길 바랬고, 이와 같이 가독성도 있길 원했습니다. 하지만 URL 설계자들은 특정 사용자들이 안전한 알파벳 외의 문자도 포함하려고 할 때가 있다는 것을 알았고 그래서 이스케이프라는 기능을 추가하여, 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게끔 하였습니다.
💡 escape
- 컴퓨터 시스템의 기본 문자 집합은 보통 영어 중심으로 설정되어 있습니다. 역사적으로 US-ASCII 문자 집합을 사용해왔습니다. US-ASCII는 문자를 서식화하고 하드웨어상에서 신호를 주고받기 위해 7비트를 사용하여 영문 자판에 있는 키 대부분과 몇몇 출력되지 않는 제어 문자를 표현합니다. 하지만 적은 수의 문자만을 포함하기 때문에 많은 언어들까지 US-ASCII가 지원하지 않습니다.
- 또한 URL에 특정 이진 데이터를 포함해야하는 경우 이를 지원하기 위해 URL에 escape string을 사용할 수 있도록 하였습니다.
- escape string은 US-ASCII에서 사용이 금지된 문자들로, 특정 문자나 데이터를 인코딩할 수 있게끔하여 이동성과 완성도를 높였습니다.
- 인코딩은 안전하지 않은 문자를 '%' 기호로 시작해 ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 escape string으로 바꿉니다.
728x90
반응형
'Network' 카테고리의 다른 글
TCP 커넥션 관리 (0) | 2023.04.04 |
---|---|
HTTP 메시지 (0) | 2023.03.26 |
HTTP에 대해 (0) | 2023.03.18 |
Network - TCP-UDP란(feat. 3 way hand shake, 4 way hand shake) (2) | 2022.01.04 |
Network - HTTP 메서드와 안정성, 캐시가능성 그리고 멱등성 (0) | 2022.01.01 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 레이어드 아키텍처란
- @ControllerAdvice
- spring boot poi excel download
- spring boot 엑셀 다운로드
- polling publisher spring boot
- pipe and filter architecture
- java userThread와 DaemonThread
- spring boot redisson sorted set
- JDK Dynamic Proxy와 CGLIB의 차이
- redis 대기열 구현
- spring boot excel download paging
- microkernel architecture
- spring boot redisson destributed lock
- java ThreadLocal
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- service based architecture
- transactional outbox pattern spring boot
- spring boot redisson 분산락 구현
- redis sorted set으로 대기열 구현
- redis sorted set
- transactional outbox pattern
- 람다 표현식
- spring boot excel download oom
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 서비스 기반 아키텍처
- 공간 기반 아키텍처
- spring boot redis 대기열 구현
- 자바 백엔드 개발자 추천 도서
- space based architecture
- pipeline architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함