1. URL 설계URL vs URIURI(Uniform Resource Identifier)상대 경로에서 절대 경로로의 변환(시작점은 /foo/bar)URL (Uniform Resource Locator)URI 설계 원칙(RFC-3986)2. 3. HTML(HyperText MarkupLanguage)

- URI(Uniform Resource Identifier) : 웹에는 상당히 많은 리소스가 포진되어 있는데 웹에 있는 어떤 자원에 접근하기 위한 유일한 식별자
- HTML
- HTTP
1. URL 설계
URL vs URI
핵심 차이 : URL은 프로토콜을 이용하여 어떻게 접근하는지에 대한 상세정보가 포함. URI는 어떠한 메서드를 사용했는지에 상관없이 리소스를 구분하기 위해 사용되는 것
URL | URI |
URL은 아이템의 identity를 서술하기위해 사용됨 | URI는 아이템의 identity를 정의하기 위해 사용되는 기술(technique)을 제공함 |
URL은 프로토콜과 같은 접근 메서드의 도움으로 웹 페이지, 혹은 웹 페이지의 컴포넌트로 연결해줌 | URI는 어떠한 메서드를 사용했는지에 상관없이 하나의 리소스를 다른 리소스로부터 구분하기 위해 사용됨 |
URL은 어떠한 프로토콜을 사용했는지에 대한 상세정보를 제공해줌 | URI는 프로토콜의 상세 정보는 포함하지 않음 |
URL은 URI의 하나의 종류 | URI는 URL의 superset(URI ≥ URL) |
구성요소: 프로토콜, 도메인(호스트), path, hash | 구성요소: scheme, authority, path, query and many more |
eg: https://www.geeksforgeeks.org/ | eg: urn:isbn:0-294-56559-3 |
URI(Uniform Resource Identifier)
- 인터넷에서 특정 자원을 나타내는 주소 값, 해당 값은 유일함(응답은 달라질 수 있음)
- 요청 : https://www.fastcampus.co.kr/resource/sample/1
- 응답 : fastcampus.pdf, fastcampus.docx

상대 경로에서 절대 경로로의 변환(시작점은 /foo/bar)

URL (Uniform Resource Locator)
- 인터넷 상에서의 자원, 특정 파일이 어디에 위치하는지 식별 하는 주소
- 요청 : https://www.fastcampus.co.kr/fastcampus.pdf
- 특정 위치를 나타내는 것이기에 변경될 수 없음. URL은 URI의 하위 개념
URI 설계 원칙(RFC-3986)
- 사용할 수 있는 문자 (ASCII 문자)
- 알파벳 : A-Za-z
- 숫자 : 0-9
- 기호 : -.:~@!&’()
- URI는 정보의 자원을 표현해야 함(리소스 명은 동사보다는 명사를 사용)
- 슬래시 구분자(/) 는 계층 관계를 나타내는 데 사용함
- Classes/java/curriculums/web-master
- URI 의 마지막 문자로( / ) 는 포함하지 않는다.
- 하이픈(-)은 URI 가독성을 높이는데 사용함
- 자원에 대한 행위는 HTTP Method(POST, GET, DELETE, PUT)로 표현
- 밑줄(_)은 사용하지 않음
- URI 경로에는 소문자가 적합함
- 파일 확장자는 URI에 포함하지 않는다
- 프로그래밍 언어에 의존적인 확장자를 사용하지 않는다
- 구현에 의존적인 경로를 사용하지 않는다
- Https://fastcampus.co.kr/servlet/clases/~~
- 세션 ID를 포함하지 않는다.
- 프로그래밍 언어의 Method명을 이용하지 않는다
- 명사에 단수형 보다는 복수형 사용. 컬렉션에 대한 표현은 복수로 사용
- 컨트롤러 이름으로는 동사나 동사구를 사용
- 경로 부분 중 변하는 부분은 유일한 값으로 대체
- /curriculums/web-master/lessons/{lesson-id}/users/{user-id}
- /curriculums/web-master/lessons/2/users/100
- CRUD 기능을 나타내는 것은 URI에사용하지 않음
- URI Query Parameter 디자인
- Uri 쿼리 부분으로 컬렉션 결과에 대해 필터링 할 수 있음
- …/curriculums/web-master?chapter=2
- …/curriculums/web-master?chapter=2&page=0&size=10&sort=asc
- URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용함
- API에 있어서 서브 도메인은 일관성 있게 사용해야함
- Https://fastcampus.co.kr
- Https://api.fastcampus.co.kr
- Https://api-fastcampus.co.kr
- 클라이언트 개발자 포탈 서브 도메인은 일관성 있게 만든다.
- Https://dev-fastcampus.co.kr
- Https://developer-fastcampus.co.kr
2. HTTP
3. HTML(HyperText MarkupLanguage)
- HyperText는 텍스트만 있는것이 아니라 링크가 있어서 다른 정보를 볼 수 있는것 → 이게 웹
- 마크업 : 표시하다. 단순히 텍스트가 아닌 구조적으로 표현할 수 있게(태그를활용하여) 하는 언어