[iOS] URL Type

RudinP·2024년 3월 12일
0

Study

목록 보기
197/258

URL

  • url을 만들 수 있다면 인스턴스 리턴, 아니면 nil
    • 보통 옵셔널 바인딩과 함께 씀

속성

Scheme

  • 리소스에 어떻게 접근하는지 표현하는 역할
  • 웹페이지나 서버 API에 접근 시 보통 http, https 사용

http

  • 웹페이지 전송에 사용하는 가장 기본적인 프로토콜
  • 암호화 없이 전송

https

  • http + TLS
  • 데이터 암호화
  • 보통 앱을 만들 때 이것만 사용(추천)

FTP

  • 파일 전송 시 사용 프로토콜

FTPS, SFTP

  • FTP + 보안

ssh

  • 컴퓨터 원격 접속 시 사용

host

  • 리소스가 저장된 서버의 이름이나 주소를 나타내는 항목

port

  • 물리적인 게 아닌, 논리적 포트
    • 보통 표현 시 https://이름.net:443 의 숫자 표현
    • 이미 포트 번호가 적혀 있다면 이 포트로 접속 시도
  • 논리적 포트는 0 ~ 65535
    • 포트 번호를 2바이트 정수로 표현하기 때문
    • well-known port
      • OS가 미리 예약해둔 포트
      • 0~1023까지다.
    • registered port
      • 1024~49151
    • dynamic port
      • 49152~65535
  • FTP: 21
  • SSH: 22
  • HTTP: 80
  • HTTPS: 443

Path

  • 해당 서버 내에서의 특정 리소스의 위치 나타냄
  • 계층 구조로 표현(전체 계층)

lastPathComponent

  • Path 중 마지막 부분을 리턴

pathComponents

  • Path의 구성 요소를 배열로 리턴

query

  • 추가적인 파라미터를 전달할 때 사용하는 문자열
  • query String이라고 부르기도 함
  • 항상 Path 뒤쪽에 옴
  • ?를 사용하여 query와 path를 구별
  • 하나 이상의 항목이 올 수 있음.
    • key = value 형식
    • & 를 이용하여 나열
  • path까지는 URL 생성자로 만들고, query는 이후 배열로 만들어서 추가하는 식으로 개발하는 것이 바람직하다.
apiURL.append(queryItems: [URLQueryItem(name: "apiKey", value: "aaaaa")])

percent Encoding


addingPercentEncoding(withAllowedCharacters: .urlQuery/Allowed)

  • url에는 공백, 특정 문자들이 올 수 없음
  • 이를 위해 사용
  • % 뒤에는 16진수가 오며, 특정 문자를 가리킴
  • 퍼센트 인코딩을 해주는 메소드가 있기 때문에 외울 필요 없음.
  • 인코딩 유무를 percentEncoded 파라미터로 전달했던 것

URL을 String으로 변환하기

apiUrl.absoluteString
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글