프론트엔드 로드맵 상단의 인터넷파트를 확실히 컴퓨터와 친하지 않았던 나의 수준을 기준으로 엄청 상세하게 업로드를 할 예정. 교재는 동현님께 추천받은 성공과 실패를 결정하는 1%의 네트워크 원리
한 챕터가량 공부했지만 표지에 적힌 이 책만큼 네트워크의 구조와 작동 원리에 대해 체계적으로 설명한 책은 없다!
라고 적혀있는데 정말 쉽게 설명을 해준다. 설명방식을 인터넷 탐험 여행 컨셉으로 전체 과정을 공부해나간다.(너무 재미있다 +_+)
오늘의 진도는 브라우저 동작 추적 원리
(정확히는 브라우저에서 리퀘스트를 웹서버를 보내고, 웹 서버는 요구에 따라 움직이고 응답을 반송하고 응답받은 브라우저가 응답을 처리하는 동작까지의 과정)
인터넷 탐험 여행 첫째날🎈
출발점 | 1st 경유지 URL 해독 | 2nd 경유지 | 도착지 클라이언트 |
---|---|---|---|
사용자가 브라우저에 URL입력 | 브라우저가 URL을 읽는 방법 URL의 요구에 따라 리퀘스트 메시지 만들기 만들어진 리퀘스트 메시지를 웹 서버에 전달 | 웹 서버에서 메시지를 해독하고 결과데이터가 든 응답메시지를 클라이언트에게 반송 | 응답메시지 확인 |
URL(Uniform Resourse Locator)부터,
URL이란인터넷에서, 어느 사이트에 접속하기 위해서 입력해야 하는, 주소를 포함한 일련의 문자.
맨 앞에http://
를 입력하고 다음에 해당 사이트의 주소를 표시함.으로 사전에 명시되어 있다.하지만
http://
뿐 아니라 액세스 대상에 따라 여러가지 URL형식이 존재한다. (작성 밥법과 각종 URL형식 첨부?)
입력한 URL은http://www.lab.cyber.co.kr/dirl/file1.html
웹 서버에 보내는 리퀘스트 메시지를 작성하기 위한 사용자가 입력한 URL해독
(웹 서버에 액세스하는 경우를 설명) 해독방법(사진첨부)
웹 서버명 뒤에 파일명을 생략한 경우,
서버에 따라 다르지만 대부분의 서버가index.html
또는default.htm
이라는 파일명을 설정해 두기때문에
/dir/index.html
또는/dir/default.htm
이라는 파일로 엑세스 한다.
URL 해독 후, 어디에 액세스해야 하는지 결정된다.
결정 후, 브라우저는 HTTP프로토콜을 사용하여 웹 서버에 액세스한다.HTTP프로토콜 : 클라이언트와 서버가 주고받는 메시지의 내용 또는 순서를 정하는 것.
메시지내용 : 대략 무엇을, 어떻게 하겠다는 내용
- 여기서 무엇을? 은 : URI(Uniform Resource Identifier, 통합 자원 식별자 - 인터넷에 있는 자원을 나타내는 유일한 주소. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다님)
- 보통 페이지 데이터를 저장하 파일 이름이나 CGI프로그램의 파일명을 URI로 작성
CGI란 : (Common Gateway Interface, 공용 게이트웨이 인터페이스 - 웹 서버 상에서 사용자 프로그램을 동작시키기 위한 조합.
CGI를 경유해 실행되는 프로그램을 CGI 프로그램이라고 부른다.
CGI 프로그램은 웹 서버가 클라이언트로부터 요청에 응답해 동작한다.
전형적으로는 웹 서버의 공개 영역에 설치된 프로그램에 대응하는 URI로 요청이 있으면, 서버는 그 프로그램을 CGI의 결정에 따라 호출한다.
- 여기서 어떻게 해서? 는 : 메서드로, 웹 서버에 어떻게 동작을 할 것인지 전달.(ex) URI로 나타낸 데이터를 읽거나 or URI로 나타낸 프로그램에 전달 등)
(대표적인 메서드(GET/POST)에 대한 설명은 ajax포스트에 간단히 정리했지만 여기서는 자세히 한 번 더.)✔ GET
(일반적)전송 방식(액세스 동작)은 method=GET을 입력하고 URI에는 위에서 예시로 들었던/dir/index.html
와 같이 저장한 파일의 이름을 쓴다. 이것은 위 파일을 읽어드려라는 의미.
->이 메시지가 웹서버에 도착했을 때, 해당 파일을 열고 데이터를 추출
-> 추출한 데이터를 응답메시지에 포함하여 클라이언트에게 반송
-> 클라이언트측의 브라우저가 이것을 받아 화면에 표시
✔ POST
POST를 사용하는 경우 파일명은 'index.cgi' or 'index.php'가 대표적
리퀘스트 메시지 안에는 메시지와 URL + CGI프로그램 or 스크립트에 건네주는 데이터(폼에 입력한 값)도 입력됨
->메시지가 서버에 도착하면 리퀘스트 안의 데이터를 건네줌
->프로그램이 출력하는 데이터를 받아서 응답 메시지에 포함시킨 후 클라이언트에 반송
리퀘스트 메시지 수신 후 어떤 내용이 쓰여져 있는지 해독 -> URI와 메시지를 조사하여 '무엇을', '어떻게 하는지' 판단 -> 요구에 따라 동작 -> 결과 데이터를 응답 메시지에 저장
응답 메시지 맨 앞부분에 실행결과(정상종료 or 문제발생)을 알려주는 스테이터스 코드(status code)가 생성->
이후 헤더파일과 페이지의 데이터로 엑세스위 응답메시지를 클라이언트에게 반송
브라우저가 받은 메시지에서 데이터를 추출하여 화면에 표시하고 HTTP의 동작(역할?)은 종료된다.