개발로 자기계발
728x90

Web

1) 네트워크
둘 이상의 장치(device) 간에 데이터를 주고받을 수 있는 연결(connection)을 의미

이러한 장치들은 서로 다른 위치에 있을 수 있으며, 인터넷 같은 대규모 네트워크에서는 전 세계의 장치들이 연결되어 있다.
네트워크를 사용하면 데이터다른 장치에 전송할 수 있으며, 이는 인터넷이나 로컬 네트워크에서 일상적으로 이루어지는 일이다.

 

예를 들어, 웹 브라우저를 사용하여 인터넷에 접속하면, 컴퓨터는 인터넷으로 연결되어 있는 라우터(router)에 연결된다.

그리고 라우터는 인터넷 서비스 제공업체(ISP, Internet Service Provider)를 통해 인터넷과 연결된다.

그리고 ISP는 다른 ISP나 인터넷 서버와 연결되어 있으며, 데이터는 이러한 연결을 통해 전송된다.

 

결론

네트워크는 데이터를 컴퓨터나 장치 간에 전송하는 수단이며, 이를 통해 웹 브라우저와 같은 애플리케이션에서 데이터를 주고받을 수 있다.

 


2) Web상에서 데이터를 주고받는 방법은?

- HTTP 요청(Request) 메시지: 클라이언트에서 서버로 데이터를 보낼 때는 HTTP 요청 메시지를 사용한다.

HTTP 요청 메시지는 URL, HTTP 메서드(GET, POST 등), 헤더(header), 본문(body) 등으로 구성되어 있으며, 클라이언트는 원하는 데이터를 HTTP 요청 메시지의 본문에 포함시켜 보내면, 서버는 해당 요청을 받아서 데이터를 처리한다.

 

- HTTP 응답(Response) 메시지: 서버에서 클라이언트로 데이터를 보낼 때는 HTTP 응답 메시지를 사용한다.

HTTP 응답 메시지는 HTTP 상태 코드(status code), 헤더(header), 본문(body) 등으로 구성되어 있으며, 서버는 클라이언트의 요청을 받아서 처리하고, 처리 결과를 HTTP 응답 메시지의 본문에 포함시켜 보낸다.

 

- API(Application Programming Interface): API는 응용 프로그램 간의 데이터를 교환하기 위한 인터페이스다.

클라이언트와 서버 간에 API를 통해 데이터를 주고받을 수 있으며, 대부분의 API는 HTTP를 사용하며, JSON 또는 XML 형식으로 데이터를 전송한다.

* 인터페이스: 다른 시스템이 하드웨어 또는 소프트웨어와 상호 작용


- WebSocket: WebSocket은 실시간 양방향 통신을 위한 프로토콜이다.

HTTP와는 달리, 클라이언트와 서버 간에 일반적인 HTTP 요청과 응답 메시지를 사용하지 않으며, 연결을 유지하고 데이터를 양방향으로 전송한다.

* 프로토콜: 컴퓨터와 다른 장치 간의 통신을 제어하는 규칙과 규정의 집합


3) HTTP Method

- GET: 서버에서 클라이언트로 정보를 가져오기 위한 메서드(웹 페이지를 불러오거나, 데이터를 조회하기 위해서 사용)
- POST: 클라이언트에서 서버로 정보를 보내기 위한 메서드 (데이터를 생성하거나, 수정하기 위해서 사용)
- PUT: 클라이언트에서 서버로 정보를 업데이트하기 위한 메서드 (데이터를 생성하거나, 수정하기 위해서도 사용)
- DELETE: 클라이언트에서 서버로 정보를 삭제하기 위한 메서드 (데이터를 삭제하기 위해서 사용)

 

4) HTTP StatusCode
- 1xx(Informational): 요청이 수신되었으며 처리가 진행 중인 상태
- 2xx(Success): 요청이 성공적으로 처리
- 3xx(Redirection): 요청을 완료하려면 추가 조치가 필요
- 4xx(Client Error): 클라이언트의 요청이 잘못되었거나 처리할 수 없다.
- 5xx(Server Error): 서버가 유효한 요청에 대해 실패


requests 예제

import requests

# GET 요청 예제
response = requests.get('https://www.example.com')
print(response.status_code)  # 응답 상태 코드
print(response.text)         # 응답 본문

# POST 요청 예제
data = {'username': 'example', 'password': '1234'}
response = requests.post('https://www.example.com/login', data=data)
print(response.status_code)  # 응답 상태 코드
print(response.json())       # 응답 본문(JSON 형식)

https://webhook.site/

 

Webhook.site - Test, process and transform emails and HTTP requests

This URL received over {{ appConfig.MaxRequests }} requests and can't accept more webhooks. New requests sent to this URL will return HTTP status code 410 Gone or 429 Too Many Requests and won't be logged. Also note that it is against our terms of service

webhook.site

여기서 간단하게 requests에 대한 응답을 볼 수 있다.


스크래핑 / 크롤링

1) 웹 스크래핑: 특정 웹 페이지에서 필요한 정보를 추출하는 것이 목적

- 수집 범위
한 개의 웹 페이지 또는 몇 개의 웹 페이지에서 필요한 정보를 수집
- 방법
HTML, CSS 등의 웹 페이지 구성 요소를 분석하여 필요한 정보를 추출
- 사용 용도
상품 정보, 뉴스 기사, 리뷰 등의 특정 정보를 수집할 때 사용

 

2) 웹 크롤링: 전체 웹 페이지를 자동으로 탐색하여 정보를 수집하는 것이 목적

- 수집 범위
여러 개의 웹 페이지에서 자동으로 정보를 수집한다.
- 방법
웹 페이지를 자동으로 탐색하여 정보를 수집
- 사용 용도
검색 엔진, 웹 사이트 분석, 데이터 마이닝 등의 대규모 정보 수집에 사용


requests robots.txt 예제

import requests

# robots.txt 파일 가져오기
url = 'https://www.example.com/robots.txt'
response = requests.get(url)

# 허용되는 URL 확인
print(response.text)

- User-agent: 규칙이 적용되는 대상 사용자 에이전트

- Disallow:  크롤링을 금지할 웹 페이지

- Allow: 크롤링을 허용할 웹 페이지


DOM

- DOM은 웹 페이지의 구성 요소를 나타내는 객체 모델로, HTML 문서의 각 요소들을 노드(node)라는 개별적인 객체로 표현한다.

- 이 노드들은 서로 계층 구조를 이루어 DOM 트리(Document Object Model tree)를 구성하며,

- DOM 트리는 웹 페이지의 구조와 콘텐츠를 표현하는 데 사용된다.

- JavaScript에서는 document 객체를 통해 DOM에 접근

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)