부스트코스 웹 프로그래밍 코스 수강을 시작했습니다!!
부스트 코스를 통해 프론트엔드, 백엔드 + 실무에 필요한 기초적인 웹 애플리케이션을 만드는 방법을 학습 할 예정입니다.
1. 인터넷 (네트웍 통신)의 이해
인터넷(internet) = 웹(web) 이라고 생각하시는 분들이 많습니다.
저 또한 인터넷이나 웹이나 그 말이 그 말이지 뭐....라고 생각했습니다.ㅎㅎ
하지만 둘 사이에는 미묘한 차이가 있는데요.
인터넷은 컴퓨터들 사이의 네트워크를 일컫는 말입니다.
반면, 웹은 인터넷상에 얽혀있는 무형의 정보 네트워크를 일컫는 말입니다.
또한, www.(World wide Web) = 인터넷 !! 이라고 생각하시는 분들도 많습니다.
그러나 www는 인터넷 기반의 대표 서비스 중 하나입니다.
컴퓨터의 각 서버들이 '포트'라는 값으로 동작합니다.
웹은 그 서버들 중 하나인거죠..
그래서 인터넷은 TCP/IP을 기반으로 하는 네트워크 결합체라고 할 수 있겠죠!!
2. HTTP(Hypertext Transfer Protocol)란?
HTTP는 서버와 클라이언트가 인터넷 상에서 데이터를 주고 받기 위한 프로토콜입니다.
여기서 프로토콜이 무슨말인지 저는 잘 몰랐는데욯ㅎㅎ
프로토콜(protocol)은 컴퓨터 사이에서 데이터 통신을 원활하게 하기 위한 통신 규약입니다.
우리가 웹 서버에 접속해(블로그나, 쇼핑몰 등...) 자료를 볼 때,
사진을 볼 수 있고, 텍스트도 읽을 수 있고, BGM(오디오)도 들을 수 있죠??
또, 회원가입을 하거나 설문을 작성할 때는 우리가 타이핑을 해서 내용을 제출할 수 도 있습니다.
우리가 이런 서비스를 사용 할 수 있는 이유는 HTTP가 어떤 종류의 데이터도 전송 할 수 있기 때문입니다.
HTTP를 통해 주고받는 대표적인 파일은 html 문서파일이 있습니다.
3. HTTP의 특징
- 서버/ 클라이언트 모델을 따른다.
- 요청(request)/응답(response) 방식으로 동작한다.
- 연결 상태를 유지하지 않는 비연결성 프로토콜이다.
쉽게 말해 우리가 노트북에서 부스트코스에 접속해 강의를 수강한다면,
강의를 수강하는 우리는 클라이언트!! 그리고 강의 페이지를 제공하는 부스트코스는 서버!!라고 할 수 있습니다.
우리가 부스트코스 강의 페이지 보여줘! 라고 요청하면, 서버에서 요청을 받아 응답해서 강의 페이지를 보여 주는것이죠ㅎㅎ
요청/응답 중요합니다!
서버는 클라이언트에게 응답을 하고나면, 바로 연결을 끊어버립니다.
그래서 클라이언트가 요청에 대한 응답을 받은 직후 또다시 요청을 보내더라도 동일한 클라이언트의 요청임을 알 수가 없습니다.
이런 특징을 무상태(Stateless) 라고 합니다.
stateless는 클라이언트와 서버가 연결을 계속 유지하지 않기 때문에 클라이언트/서버간의 최대 연결수 보다 훨씬 많은 요청과 응답을 처리할 수 있습니다.
이 특징 덕분에 HTTP는 불특정 다수를 대상으로 하는 서비스에 적합하다는 장점을 가집니다.
반면에, 서버가 클라이언트와의 연결을 끊어서 클라이언트의 요청 이전상황을 알 수 없다는 단점이 있습니다.
이 단점을 보완하기 위해 Cookie와 같은 기술을 도입해 정보를 유지 합니다.
4. HTTP의 작동방식
왼쪽의 pc가 클라이언트, 오른쪽이 서버입니다.
클라이언트에서 요청을 보내면, 서버에서 요청에 맞는 응답을 보내는 방식으로 작동합니다.
5. URL(Uniform Resource Locator)
URL = 인터넷 상의 자원의 위치 입니다.
쉽게 말해, URL은 특정 웹 서버의 특정 파일의 주소 입니다.
하나의 물리적 컴퓨터 안에는 여러 서버가 동작할 수 있는데,
이 서버는 포트 값이 다르게 동작해야 합니다.
HTTP서버는 기본 포트 값이 80번 입니다.
IP주소는 집의 주소이고, 포트는 집에 있는 방의 번호라고 할 수 있습니다.
6. HTTP작동 자세히 보기
요청에는 여러가지 방법이 있습니다.
요청시에 어떤 메서드로 요청을 보내느냐에 따라 방식이 정해집니다.
요청 메서드는 요청의 종류를 서버에 알려주기 위해 사용합니다.
요청 메서드에는 GET, PUT, POST, DELETE, PUSH, OPTIONS등이 있습니다.
주요 4개의 메서드의 기능을 살펴보자면.....
- GET : 정보를 요청하기 위해서 사용한다. (SELECT)
- POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
- PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
- DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
google페이지에 접속해서 F12를 눌러 개발자 모드를 실행 시키면
페이지에 접속하기 위해 get요청을 보냈음을 확인할 수 있습니다!!
학습을 마치며..
인터넷, 웹, http.... 일상 생활에서 너무 많이 쓰이는 단어들이라서 내가 이 용어들에 대해 정확히 알고 있는지 아닌지 조차 모르고 있었던것 같다.
이번 학습을 통해서 기본적인 웹의 동작 방식을 배웠지만,
웹에 대해 정확히 안다고 말할 수 있기까지는 더 많은 학습이 필요할 것 같다.
'WEB > BoostCourse' 카테고리의 다른 글
[부스트코스]eclipse, Tomcat설치 (0) | 2020.03.05 |
---|---|
[부스트코스]1_2&1_3 HTML과 CSS (0) | 2020.02.27 |
[부스트코스]01_Web개발의 이해 (0) | 2020.02.14 |
[부스트코스]1_04_browser의 동작 (0) | 2020.02.03 |
[부스트코스]1_03_웹 FrontEnd와 BackEnd (0) | 2020.02.03 |