사용자의 링크 클릭 또는 URL 입력과 같은 유저의 ‘Action으로 시작
이후 서버에서 처리를 마치고 네트워크를 통해 response 를 사용자의 브라우저로 다시 전송
사용자의 브라우저가 response를 수신하기 시작하고, Document Object Model 또는 DOM 처리를 시작
DOM 로드가 완료되는 시점을 DOM ready 라고 하며, DOM을 사용하여 사용자의 브라우저가 페이지를 렌더링하기 시작
Action / Request - Web Page에 대한 Client의 요청
Response - Server의 응답
decidePolicyFor navigationAction: WKNavigationAction
decidePolicyFor navigationResponse: WKNavigationResponse
iOS에서는 이런 웹 페이지 요청이나, 진행률 추적, 오류 처리 등을 위해 WKNavigationDelegate 메서드를 사용
WKNavigationDelegate 순서
// 1
func webView(WKWebView, decidePolicyFor: WKNavigationAction,
preferences: WKWebpagePreferences,
decisionHandler: (WKNavigationActionPolicy,
WKWebpagePreferences) -> Void)
// 2
func webView(WKWebView, didStartProvisionalNavigation: WKNavigation!)
// 3
func webView(WKWebView, decidePolicyFor: WKNavigationResponse,
decisionHandler: (WKNavigationResponsePolicy) -> Void)
// 4
func webView(WKWebView, didCommit: WKNavigation!)
//5
func webView(WKWebView, didFinish: WKNavigation!)