본문 바로가기

Life/TIL

20210709 TIL

Facts

  • 웹을 지탱하는 기술 스터디 - URI 
  • 알고리즘 문제 - 짝지어 삭제하기

Feelings

  • 뭔가 금요일이라 평소보다 조금 헤이하게 시간을 보낸 감이 있다. 그래도 스터디는 꾸준히 하고 스터디에 대한 내용을 꾸준히 정리하는 것으로도 하루를 그냥 허투로 보내지 않았다는 안정감을 준다. 역시. 나란 사람은 그냥 강제로 환경에 넣어야 하나보다 ㅎㅎㅎ 
  • 마스크를 계속 쓰니 자꾸 턱쪽에 뾰루지가 계속 난다. 가끔 이게 너무 신경쓰여서 집중이 안될때도 있는데(몸에 난 딱지, 여드름 이런걸 못참는다 ㅜㅜ ) 빠른 시일 이내에 해결법을 찾아봐야할거같다. 

Finding

URI(identifier) = URL(Location), URN(Name)가 합쳐진것, 리소스를 통일적일 방식으로 식별하는 ID 

 

URI 구문

간단한 것 

URI Scheme: 사용하는 프로토콜, 웹은 HTT겠지 그 뒤는 ://표시로 시작된다.

호스트명: DNS에서 식별가능한 도메인명이나 IP 어드레스 반드시 인터넷에서 일의성을 가지고 있다.

패스: 호스트 주소에 해당하는 곳에서의 리소스가 위치한 경로 

 

복잡한것

간단한 것 + 

사용자 정보: 리소스에 액세스하기 위한 사용자 아이디와 비밀번호 

포트: IP주소의 지정된 포트번호, 포트번호를 적지 않으면 base 포트번호로 지정이 되는데 웹의 base 포트번호는 80이다. 호스트 명옆에 :로 구분되어 붙여진다. 

쿼리 파라미터: & 뒤에 붙여지며 name=value형식으로 여러개는 ;로 구분되어 붙여진다. 순서가 중요할 시에는 name없이 콤마(,)로 구분되어 적는다. 서버에서 사용될 정보들을 전달하기 위한 내용, 

URI 프레그먼트: & 뒤에 붇여지며 해당 리소스의 특정부분을 가리킬 때 사용된다. 

 

절대 URI와 상대 URI

/로 루트와 디렉토리명을 구분한다. 

 

절대 URI: 스키마와 호스트명과 경로가 모두 명시된 URI

상대URI: 스키마와 호스트명을 생략하고 그 후부터의 URI의 경로를 말한다.

보통 상대 URI의 시작 경로를 base URI로 지정해 놓는데 변경되거나 정확하게 알지 못하는 경우도 있으니 되도록이면 절대 URI를 사용하자.

- 2가지의 URI 부여방식 

-리소스의 URI를 base URI로 지정 : 직관적이고 이해하기 쉽지만 클라이언트가 리소스의 base URI를 알고 있어야 한다. 

- 명시적으로 지정하는 법: HTML 헤더에 base 태그로  경로를 설정해준다.

 

URI에서 사용하는 문자들 

아스키코드로 변환이 가능한 문자들로만 경로를 구성 할 수 있다. 

그 이외의 문자들은 보통 %인코딩을 통해 변환이 이루어지는데 보통 %가 앞에 붙는 base64로 인코딩된다.  UTP-8로 인코딩 될 수 있다. 설정된 문섭마다 다르니 살펴보고 맞는 인코딩을 해야한다. 

 

URI의 길이 제한은 스펙상으로는 없지만 구현상(IE에서는 몇자리까지만 허용)에서는 있다. 

 

다양한 스키마..?

 

URI 구현시 주의할점 :  base URI가  변경되거나 정확하게 알지 못하는 경우도 있으니 되도록이면 절대 URI를 사용하자. 가능 한 한 UTP-8 인코딩을 하자

 

cool한 URI란? 

1. 파일의 확장자와 경로가 드러나지 않아야한다: 같은 문서를 다른 언어로 변경하면 URI가 존재하지 않아지니까 사용하지 않아야한다.  

2.  메서드명을 포함하지 않아야 한다: 메서드가 바뀌면 또 URI 가 존재하지 않아진다.. 

3. 세션ID를 포함하지 않아야한다: 로그인할 때마다 세션 ID는 바뀌는 거니까 또 URI 존재하지 않아짐. 

4. 리소스는 명사형으로 표시: 이미 메서드 자체가 리소스를 처리하는 액션 명을 가지고 있는 것이다. 그래서 리소스(명사)를 메서드(동사)한다라는 관계라서 그거에 맞에 명사형으로 표시해야 한다.   

 

개발자와 사용자 모두에게 기억하기 쉽고 사용하기 쉽게 만들어져야 cool URI이다.  

 

URI 변경은 최대한 하면 안되지만 꼭 해야하는 경우라면 redirect를 이용해 옮겨주어야한다. 301 영구적으로 옮겨짐 응답을 이용해 리다이렉트 해주기

 

매트릭스 URI 

URI 설계를 할 때 사용하는 기술로 확장자 표현(언어)을 지정하는 방법이다. 

콘텐츠 네고시에이션: 사용자에 맞는 언어로 리소스를 표현해주는 것 (한국어를 사용하는 유저에게는 한국어를 영어를 사용하는 유저에게는 영어로)

문서에 .ko, .uk 등의 확장자 붙여 해당하는 언어로 표현된 프레스 릴리스를 보여준다. 

아니면 헤더에 Accept-Language를 설정하여 언어의 중요성을 설정할 수 있다. 

 매트릭스 URI는 파라미터를 세미콜론(;)으로 구분해서 리소스를 표현해줄 수 있는데 파라미터 순서 중요도가 있는 경우는 ,로만 연결해 지정해줄 수 있다.  

 

URI 불투명성 

클라이언트에서 URI를 설계해줄 경우 문제가 생긴다. 

서버에서 설계한 URI를 클라이언트에서는 몰라야한다. 접근하는 URI가 유효한지 아닌지 알 수 없어 특정한 곳으로 접근하는 문제가 일어나지 않는다. 

 

 

URI는 리소스 이름이다, 수명이 길다, 브라우저 어드레스 란에 표시된다. 

Affirmation

  • 나는 매일 꾸준히 성장하는 사람이다. 
  • 나는 웹의 전문가다! 

 

 

 

'Life > TIL' 카테고리의 다른 글

20210712 TIL  (0) 2021.07.13
20210711 TIL  (0) 2021.07.12
20210708 TIL  (0) 2021.07.09
20210707 TIL  (0) 2021.07.08
20210706 TIL  (0) 2021.07.07