728x90
네트워크
- 클라이언트 : (일상적) 고객
- 데이터와 서비스를 요청하는 프로그램
- 서버 : (일상적) 서비스를 제공하는 사람
- 데이터와 서비스를 제공하는 프로그램
- Request (요청)
- Response (응답)
- 클라이언트 -> 서버
- (영상, 파일, 채팅, 메일, 도메인)
- Request 요청 (주세요!)
- 서버 -> 클라이언트
- Response 응답 (알겠습니다!, 여기 있습니다.!)
요청 Request 방법 method
- C 생성 R 읽기 U 수정 D 삭제
- GET (R 읽기)
- POST (C 생성)
- PUT (U 수정)
- DELETE (D 삭제)
- GET
- 클라이언트가 서버에 데이터를 요청할 때 사용하는 메서드
- POST
- 특정 데이터를 추가하는 요청
- PUT
- 특정 데이터를 수정하라는 요청
- DELETE
- 특정 데이터를 삭제하라는 요청
Responsee status 응답 상태
- 세 자리의 코드를 응답한다.
- 100번대 : 정보가 응답되었다.
- 200번대 : 성곡적으로 응답되었다.
- 300번대 : 리다이렉션 메시지
- 400번대 : 클라이언트쪽 에러 (요청 오류) 문제발생 원인이 클라이언트
- 500번대 : 서버쪽 에러
Header
- 서버와 클라이언트간의 데이터를 주고받을 때, 해당 정보를 포함하는 데이터
- 일반 헤더
- 요청 헤더
- 응답 헤더
- Entity(개체) 헤더
URL
- Uniform Resource Locater
프로토콜://주소 or IP:포트번호/경로?쿼리스트링
import requests
# 설치가 되지 않았을 경우
# pip install requests (주피터 노트북 : !pip install requests)
- requests 모듈을 불러오는데 설치가 안될경우
- 위 명령어를 이용해 모듈을 불러온다.
url = "https://www.google.com/search?q=iso+7%EA%B3%84%EC%B8%B5&sxsrf=ALiCzsaEoeBq-b9lxotyL3Sumr4noNqoQA%3A1668994736960&source=hp&ei=sNZ6Y82OOLWv2roPpqmZ6As&iflsig=AJiK0e8AAAAAY3rkwE9H--llhJN_f75M_oQIeutTdSIN&oq=iso+7&gs_lcp=Cgdnd3Mtd2l6EAMYADIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDIFCAAQgAQ6BwgjEOoCECc6CwgAEIAEELEDEIMBOggIABCABBCxAzoLCC4QgAQQsQMQgwE6EQguEIAEELEDEMcBENEDENQCUMk8WJVfYIxraAdwAHgBgAFsiAHGBZIBAzIuNZgBAKABAbABCg&sclient=gws-wiz"
response = requests.get(url)
response # <Response [200]>
# 응답 객체로 변환
type(response)
# 딕셔너리 형태로 header 반환
response.headers
- 임의의 주소를 불러와 url에 할당한다.
- 요청 메서드인 requesets 를 사용해 url에 있는 서버로 요청을 보내면
Response [200]
이라는 요청에 성공적인 응답을 보내줬다는 ok 사인이다.- 이때 객체형태는 응답객체이다.(Response)
- response 에 header 부분만 요청하면 딕셔너리 형태로 반환된댜.
# 헤더 접근
header = response.headers
header['Date'], header.get('Server')
# 응답 정보 코드
response.status_code
# 잘못된 url의 경우 응답코드
requests.get('https://github.com/expandsoruce/1234')
response.cookies
- 딕셔너리타입으로 나온 header는 key 값을 입력하여 value 값을 불러낼 수 있다.
- 해당 요청의 응답 정보 코드를 보고싶으면 .status_code 를 사용하면 된다. 응답에 성공한 경우 200 을 반환한다.
- 잘못된 url의 경우 404 라는 Not Found 응답코들를 반환한다.
- 응답코드는 위 부분에 정리가 잘 되어있다.
# HTML 소스 정보에 대하여 스트링으로 반환
type(response.text)
# 응답객체의 내용에 대해 바이트로 반환
type(response.content)
response.text[2000:2500]
- .text 를 이용하면 응답 정보를 스트링으로 반환해준다.
- .content는 응당 정보를 바이트로 반환해준다.
# 모듈명 줄이고싶을 대 as 사용
import requests as rq
# 한글의 경우 인코딩이 잘 되지않음
res = rq.get('https://www.daum.net/')
res.text
res.content
# Post 메소드로 보내기
res = rq.post('http://examle.com/', data={'key':'value'})
res.status_code
- requests 경우도 다른 모듈과 마찬가지로 임의의 줄인 모듈명을 사용할 수있다.
- 단 한글의 경우 인코딩이 잘 되지 않는다.
OSI 7 Layer 계층
- Open System Interconnection 7 Layer
- 네트워크 구조에 대한 기본 모델
- ISO(국제 표준기구, International Organization for Standardization)에서 정리한 네트워크 구조에 대한 기본 구조
1-4번 까지는 하위 계층 : Data Flow Layer
- 물리 계층 Physical Layer
- 데이터 링크계층 Data Link Layer
- 네트워크 계층 Network Layer
- 전송 계층 Transport Layer
5-7번은 상위 계층
5. 세션 계층 Session Layer
6. 표현 계층 Presentation Layer
7. 응용 프로그램 계층 Application Layer
TCP/IP 프로토콜 스택
- 네트워크 Network
- 물리 계층 Physical Layer
- 데이터 링크 계층 Data Link Layer
- 인터넷 Internet
- 네트워크 계층 Network Layer
- 전송 Transport
- 전송 계층 Transport Layer
- TCP(양방향 패킷 송수신)
- UDP(패킷 단방향 송신)
- 패킷 : 네트워크가 전달하는 데이터의 형식화된 블록, 네트워크 전송의 용량 단위
- 응용 프로그램 Application
- 세션 계층 Session Layer
- 표현 계층 Presentation Layer
- 응용 프로그램 계층 Application Layer
- HTTP(Hypertext Transfer Protocol)
- FTP(File Transfer Protocol)
- IMAP(Internet Messaging Access Protocol) : 메일 송수신
- SMTP(Simple Mail Transfer Protocol) : 메일 송수신
728x90
'Python' 카테고리의 다른 글
25-1. Numpy(1) (1) | 2022.11.28 |
---|---|
21. 크롤링 (0) | 2022.11.22 |
19. 정규식...(진짜 너무한다..) (0) | 2022.11.18 |
개발 환경 구축 (0) | 2022.11.18 |
17-4. 클래스(OOP)(4) (0) | 2022.11.15 |