web browser와 server 는 통신을 어떻게 할까?
client(web browser) 가 Server한테 request : html 을 요청,
그러면 server 는 client 한테 response: html 을 전송한다.
이 둘 사이에 전달되는 공통의 약속, 메세지를 http 라고 한다.
위 그림처럼 크롬 개발자 도구에서 Network 에 들어가면 web browser 와 web server 사이의 request, response 메세지를 확인 가능하다.
get- 웹서버로부터 가져오는 method
host- host 라는것은 인터넷에 연결된 컴퓨터를 한대한대 식별하는 도구인데 여기서 적혀있는 host 는 우리가 요청하는 웹사이트의 주소를 의미, 8080이라는 포트 번호에 등록되어있는 웹서버를 의미한다
user-Agent 부분은 어떤 유저가 접속했는지 확인 가능한 부분 , 여기서 만약에 크롤링 봇이 서버를 방문한거라면 이부분에 robot 이라고 적혀있고 해당 방문자 로봇을 차단하는것도 가능함
response header 구조인데 여기서는
status code , phrase - 응답에 대한 결과이고 4xx codes 등 error 메세지등을 볼 수있는데
해당 코드별 에러 내용은
https://www.restapitutorial.com/httpstatuscodes.html
위 사이트에서 확인 가능하다
reponse header 에서 중요한 부분은
content-type
이 것은web server 가 응답할때는 text 로 전송하며 html이라는 컴퓨터 언어이다 라는 뜻
그럼 이걸 본 web browser는 화면에 html로 표시해줌
이 클라이언트와 서버사이에 통신하는 text 규약이 http라고 했다. 근데 이 웹 브라우저와 서버 사이 통신 중에 제 3자가 들어와서 정보를 확인 할 수도 있다. 물론 개인 정보나 금융, 군사 등 중요 정보가 아니라면 상관 없겠지만 중요한 정보가 있다면 리스크가 클 것이다.
그래서 생긴것이 https인데 여기서 s는 secure 즉 암호화 되어있다는 것, 따라서 중간에 제3자가 이 정보를 가로채도 내용을 확인하기 어렵다.
Cache
cache-control , pragma 같은 header 값들은 cache 성능을 향상시키기 위한 기술이 있다.
cookie
현재는 cookie 보다 저장 공간, 보안성 등 뛰어난 기술인 web storage 도 존재한다.
proxy
이러한 네트워크 통신 내용을 크롬 개발자 도구 말고도 wireshark라는 어플리케이션을 통해 컴퓨터 내부에서 일어나는 모든 네트워크 트래픽을 볼 수 있는 기술도 있다.
https://opentutorials.org/course/3385 를 참고하여 작성한 글입니다.