Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Olive Study Room

[CS] HTTP 프로토콜(HyperText Transfer Protocol), URL 본문

cs

[CS] HTTP 프로토콜(HyperText Transfer Protocol), URL

Olive Dev 2021. 5. 17. 23:27

예전에 했던 크롤링 관련 프로젝트를 다시해보는데, 다른 사이트에서는 되는데 특정 사이트에서 되지 않는 것을 발견했다.

그 사이트만 URL 끝부분에 html이 붙어있는 것을 발견해서 HTTP프로토콜에 대해 공부해보기로 한다!

(이 문제가 아닐 수도..)

 

 


HTTP 프로토콜이란?

Request : client가 서버에 요청하는 것(이 경우 html을 요청)

Response : 서버가 요청받은 것을 주는 것

protocol : 준수해야하는 규칙

-> 크롬 검사에서 Network에 각 name을 누르면 header를 확인할 수 있다.

 

  • Request를 위한 메시지, Response를 위한 메시지로 구분되어 있다.
  • 웹 브라우저가 웹서버에게 요청하는 Request header를 만들고 웹서버는 Response header를 만들고, 웹브라우저가 받아서 화면에 띄워준다. -> 통신 프로토콜은 "나는 이렇게 줄 테니 넌 이렇게 받고 난 너가 준거 그렇게 받을게" 정도로 해석된다.
  • 웹에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 프로토콜을 사용한다.

 

 

HTTP (1) : Request message 형식

Request Line : 웹 서버에 요청하는 정보, 브라우저가 사용하고 있는 버전

Requset Header : host  웹 서버의 주소

                                  User-Agent 웹 브라우저. 쓰고 있는 브라우저. 서버가 원하는 브라우저가 아닐 시 차단도 가능함

                               Accept-Encoding 통신할 때 응답하는 데이터양이 많으면 압축하기도 하는데, 이 때의 압축 형식

                               If-Modified-Since 새로고침할 때마다 매번 새로 받아오지 않고 서버가 갖고 있는 것과 최근 새로고침했을 때와 최신 버전을 비교해서 최신인 것으로 받아줌

 

 

 

HTTP (2) : Response message 형식

Status Line : http 버전, 응답 결과, 응답 결과를 풀어쓴 것

응답 결과

Response Header : Content-Type 데이터 형식

                                  Content-Length 데이터 크기

                                  Content-Encoding 데이터를 압축해놓은 방식

                                  Last-Modified 데이터가 최근 수정된 시점

 

 

 

 

 

--> 웹 브라우저가 Request message를 웹 서버에 보내면 서버는 Response message와 html을 돌려준다.

 

 

 

 

URL(Uniform Resource Locator), Domain

URL : 인터넷에서의 자원 위치

ip주소, URL 둘 다 사이트에 접속할 수 있다.

*ip란? 인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 타블릿, 서버 등)를 각각 식별할 수 있는 주소.

 

 

장치가 도메인으로 네임서버를 통해 ip를 받는 과정

* 도메인과의 차이는?

https://www.naver.com/ 은 URL, 'naver.com' 부분은 도메인이다.

-> 도메인은 ip주소를 기억하기 어렵기 때문에 이름을 부여한 것!

-> 도메인이 URL에 포함된다고 보면 된다!

 

daum.co.kr 에서,

daum : 컴퓨터의 이름

co : 국가 형태의 최상위 도메인

kr : 대한민국의 NIC에서 관리하는 도메인을 의미

 

 

 

 

예를 들어 www.naver.com/pengpeng.html  과 같은 url은 naver.com에 있는 pengpeng.html을 불러온다는 의미.

크롤링시 위와 같은 html로 접근하게 되는 url에서만 값을 받아올 수 없는데.. 정녕 받아올 수 있는 방법이 없는 것일까? 

다음에 고민해보도록 한다..


+ 추가 공부 필요 사항

 

https( = SLL) : http secure

전송하고 있는 내용을 가로채도 알 수가 없다(클라이언트와 서버만 알고 있다).

로그인할 때 https가 아니라면 의심해봐야한다.

 

Cache(저장)

한 번 들어갔던 사이트에 다시 들어갈 때 또 다운로드하지 않도록 저장해둔다.  -> 성능 향상을 위해

 

Cookie

로그인하고 나중에 또 로그인하면 자동로그인 되는 것(웹 브라우저가 기억하고 있음)

쿠키값을 웹브라우저에 설정하면 접속할 때마다 쿠키값을 서버에 전송해서 사용자의 상태를 저장할 수 있다.

 

Web storage

쿠키보다 많은 양을 저장할 수 있고 보안도 우수하다.

 

proxy 서버

웹브라우저와 웹서버 사이에 중개 서버. 캐시를 대신해주고 보안 공격을 막아준다.

 

개발자 도구, wireshark

네트워크 모니터링하는 도구

 

 

 

 

 

 

 

공부 자료 : https://opentutorials.org/course/3385/21673 >> 생활코딩

                  https://developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_URL

Comments