-
23/12/07 네트워크 프로그래밍카테고리 없음 2023. 12. 7. 10:44
파일 : 14주차_강의안
25p. HTTP를 이용한 사물인터넷
1. urllib.parse 모듈을 사용한 url 분해
2. urllib.request 모듈을 사용한 네트워크 자원 요청과 생성
3. requests 모듈을 사용한 네트워크 자원 요청과 생성
4. http.server 모듈을 사용한 http 서버 구현
5. HTTP Server 를 이용한 라즈베리파이 제어29p HTTP 의 기본 동작
- http는 서버와 클라이언트 사이의 응용 프로토콜
- 인터넷에서 가장 많이 사용되는 프로토콜, 많은 디바이스가 지원
- 클라이언트가 서버에게 정보를 요청 HTTP Request 하면 서버는 응답 HTTP Response 를 전송하는 구조
- 요청은 URL ( Unifuorm Resource Locator) 로 구성되어 서버에 전달
- 서버는 URL 을 분해하여 해당 요청을 처리< urllib.parse 모듈을 사용한 url 처리 >
from urllib import parse url = "http://location/path;parameter?query=argument#frag" p_url = parse.urlparse(url) print(p_url)
urllib.parse : URL 문자열을 분해하거나 합성하기 위한 모듈
URL 문자열 구성
- 6가지 요소로 구성 scheme , netloc, path, params, query, fragment32p URL 분해
- URL 요소 ( 주로 4가지 사용)scheme: 자원에 접근하기 위해 사용되는 프로토콜
netloc : 서버의 도메인 네임
path : Web Client 가 접근하려는 서버 내의 자원 경로
params : path parameter(;로 분리)
query: 자원을 처리하거나 검색하기 위한 정보 문자열
fragment : Web page 내부 section 식별자속성값으로 구분할 수있다. 인덱스값 말고
- ParseResult 객체
Tuple의 subclass인 namedtuple 객체 - 각 요소 index 또는 name 접근
6개의 속성이외에 username, password, hostname, port 정보 제공
ParseResult 요소34p URL 분해
- urlsplit() 메소드
URL을 parameters 를 제외한 5개 요소의 튜플로 분해
5개의 요소를 갖는 namedtuple을 반환- urljoin() 메소드 : 두 개의 문자열을 하나의 URL로 결합하기
urljoin(base_url_string, relative_url_string) 함수 이용- geturl() 함수 6개를 하나로 합친거 분해된 url요소를 하나의 url 문자열로 표현
URL 6개항목, scheme, locate, path는ㄴ 확실하게, 뭐가있는지 시험