User-Agent
iOS ์ฑ ๊ฐ๋ฐ์์ User-Agent๋ ์ค์ํ ์ญํ ์ ํ๋ค.
User-Agent๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋, ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๋ฌํ๋ ๋ฌธ์์ด์ด๋ค.
User-Agent๋?
User-Agent๋ ์ ํ๋ฆฌ์ผ์ด์
, ์ด์์ฒด์ , ๊ณต๊ธ ์
์ฒด ๋๋ ๋ฒ์ ์ ์๋ณํ ์ ์๊ฒ ํด์ฃผ๋ HTTP request header์ ํ ์ข
๋ฅ์ด๋ค.
ํ์ผ์ ๊ฐ๋ฉด ์ด๋ฐ ํ์์ผ๋ก ์ง์ ๋์ด ์๊ธฐ ๋๋ฌธ
์ด ์ ๋ณด์๋ ํด๋ผ์ด์ธํธ์ ์ด๋ฆ, ๋ฒ์ , ์ด์์ฒด์ , ๋ ๋๋ง ์์ง ๋ฑ์ด ํฌํจ๋์ด ์๋ค.
Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1
Scss
๋ณต์ฌ
Safari ๋ธ๋ผ์ฐ์ ์์ ๋ณด๋ธ User-Agent
โ ์ด ์ ๋ณด๋ฅผ ํตํด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ํ๊ฒฝ์ ๋ง๋ ์ปจํ
์ธ ๋ฅผ ์ ๊ณตํ๊ฑฐ๋, ํน์ ํด๋ผ์ด์ธํธ๋ฅผ ๋์์ผ๋ก ๋ง์ถคํ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค.
iOS์์ User-Agent ์ค์ ๋ฐ ์ปค์คํฐ๋ง์ด์ง
iOS ์ฑ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก HTTP ์์ฒญ์ ๋ณด๋ผ ๋ ์์คํ
์ด ์๋์ผ๋ก User-Agent๋ฅผ ์ค์ ํด์ค๋ค.
๊ทธ๋ฌ๋ ํน์ ์๊ตฌ์ฌํญ์ด ์์ ๊ฒฝ์ฐ, ์ด User-Agent๋ฅผ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์๋ค.
User-Agent๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ
URLSession์ ์ฌ์ฉํ User-Agent ์ค์
URLSession ์ ์ฌ์ฉํด HTTP ์์ฒญ์ ๋ณด๋ผ ๋, URLRequest ๊ฐ์ฒด์ ์ง์ User-Agent ํค๋๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
var requst = URLRequest(url: URL(string: "https://example.com")!)
request.setValue("CustomUserAgent/1.0", forHTTPHeaderField: "User-Agent")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
// ์๋ต ์ฒ๋ฆฌ
}
task.resume()
Swift
๋ณต์ฌ
์ด ์ฝ๋๋ ์์ฒญ์ ๋ณด๋ผ ๋, CustomUserAgent/1.0 ์ด๋ผ๋ User-Agent๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ค.
WKWebView์์์ User-Agent ์ค์
์น ์ปจํ
์ธ ๋ฅผ ํ์ํ๋ WKWebView ์์๋ User-Agent๋ฅผ ์ค์ ํ ์ ์๋ค.
let webView = WKWebView()
webView.customUserAgent = "CustomUserAgent/1.0"
Swift
๋ณต์ฌ
์ด๋ ๊ฒ ํ๋ฉด WKWebView ๊ฐ ๋ก๋ํ๋ ๋ชจ๋ ํ์ด์ง์ ๋ํด ์ง์ ๋ User-Agent๋ฅผ ์ฌ์ฉํ๋ค.