Server & Client Architecture
- client : 브라우저를 활용해 서버에 데이터를 요청 ( request)
- server : 클라이언트의 브라우저에서 데이털르 요청하면 요청에 따라 데이터를 client에 전송 ( response)
URL
https://n.news.naver.com/article/079/0003939868?sid=100
https:// - protocol
news - Sub Domain
naver.com - Primary Domain : 어떤 서버로 갈지 알려줌
80 or 443 - port : 서버에 들어가서 어떤 프레임워크로 데이터를 요청할지 선택하는 포트
/article/079/0003939868 - path: 디렉토리 이름 , 경로
?sid=100 - Query : key value 로 구성되어 있는 하나의 데이터에서 어떤 데이터를 볼지 server에 정보 전달
*없는 부분
read.nhn - Page (File) : 디렉토리에 있는 파일에 접속, 파일 이름
#fragment - Fragment : # 뒤에 붙는 부분, 페이지 내의 특정위치 지정. 웹페이지 id 값 찾아서 그 화면을 보여줌
*http / https 차이
https 는 데이터를 암호화하여 전송, 기본포트는 443
http 는 기본 프로토콜, 데이터를 암호화하지 않음. 기본 포트는 80
HTTP Request Methods
1. Get 방식 : URL 에 쿼리 포함, 쿼리(데이터) 노출, 전송 가능 데이터 작음
2. Post 방식 : Body 에 쿼리 포함, 쿼리(데이터) 비노출, 전송 가능 데이터 많음.
HTTP Status Code
client 와 server가 데이터를 주고 받은 결과 정보
- 2xx : success
- 3xx : redirect
- 4xx : request error
- 5xx : server error
Cookie, Session, Cache
1. cookie
- 클라이언트의 브라우저에 저장하는 문자열 데이터
- ex) 로그인 정보, 내가 봤던 상푸 정보 팝업 다시 보지 않음 등
2. session
- 클라이언트의 브라우저와 서버간의 연결 정보
ex) 자동 로그인
3. cache
-client,server의 RAM(메모리)에 저장하는 데이터
-RAM에 데이터를 저장하면 데이터 입출력 빠름
Web Language & Framework
1. Client (frontend)
- html
- css : Bootstrap, Sematic UI, Materialize, Material Design life
- javascript : reat.js, vue.js, angular, jQuery
2. Server(Backend)
-python : Django, Flask, FastAPI
-Java : Spring
-Ruby : Rails
-Scala : Play
-Javascript : Express(node.js)
Scarping & Crawling
1. scraping : 특정 데이터를 수집하는 작업
2. crawling : 웹서비스의 여러페이지를 이동하며 데이터를 수집하는 작업/ spider,web crrawler, bot 용어 사용
웹페이지 종류
1. 동적 페이지: 웹 브라우저에 화면이 뜨고 이벤트가 발생하면 서버에서 데이터를 가져와 화면을 변경
-url 새로 고침이 일어나지 않음.
-서버로부터 list 나 dict 을 JSON 포맷으로 받아옴
2. 정적 페이지: 웹 브라우저에 화면이 한번 뜨면 이벤트에 의한 화면 변경이 없는 페이지
-url 이 바뀜
- 서버로부터 html 으로 받아옴
데이터 수집 방법
1. url 찾기 : 웹페이지 분석 (chrome dev tool)
2. request (URL) : response(data)
- JSON :동적 페이지
- html : 정적 페이지
3. Parshing : data를 dataframd(DF)로 바꿔줌
- JSON/html 방법이 달라짐
'Dev > 웹크롤링' 카테고리의 다른 글
[웹크롤링]Python 클래스 사용법 (0) | 2024.09.19 |
---|