네트워크

[Python] HTTP 프로토콜

bo._.h 2022. 10. 11.
728x90
반응형

HTTP 서버와 통신하기

-  HTTP?

• HTTP(HyperText Transfer Protocol, 문화어: 초본문전송규약, 하이퍼본문전송규약)는 WWW 상에서 정보를 주고받을 수 있는 프로토콜

• 주로 HTML 문서를 주고받는 데에 쓰임

• 주로 TCP 80번 포트 사용

• HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜

• 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회

 

- HTTP 역사

 

- 요청 내용에 포함되는 요청 메소드

요청 메소드 설명
GET URL에 해당하는 자료의 전송을 요청
HEAD GET과 같은 요청이지만, 자료에 대한 정보(meta-information)만을 받음
POST 서버가 처리할 수 있는 자료 전송
PUT 해당 URL에 자료를 저장
DELETE 해당 URL의 자료를 삭제
TRACE 이전에 요청한 내용을 들을 것을 요청
OPTIONS 서버가 특정 URL에 대해 어떠한 HTTP Method를 지원하는지 확인
CONNECT 프록시가 사용하는 요청
PATCH 리소스에 대한 부분적인 수정을 적용

 

- 클라이언트 요청 예

 

- 서버 응답 예

 

- HTML 구조 : 부모 요소와 자식 요소

출처 : http://webdir.tistory.com/33

 

- HTML 실제 구

 ① Document 정보

② HTML의 시작과 끝

③ 헤더 정보

④ HTML 문서 제목과 디자인 정보

⑤ HTML 본문

⑥ 본문을 나누어 관리

출처 : https://www.epubguide.net/archive/201310?page=2

 

- 웹 요청 간단하게 하기

import request

host = "http://malware-traffice-analysis.net/"
res = "requests.get(host)

print(res.status_code) #응답 코드
print(res.raise_for_status() ) # 200 OK 코드가 아닌 경우 에러 발생
print(res.content) # 본문 전달
print(res.text) # 본문 전달

 

- GET 요청에 파라미터 데이터 보내기

import requests

host = "http://malware-traffice-analyis.net/"
my_prams = {'id' : 'test', 'pw' : 'password'}
response = requests.get(host, prams=my_prams)

 

- POST 요청에 파라미터 데이터 보내기

import requests, json

host = "http://malware-traffice-analyis.net/"
my_data = json.dumps({'id' : 'test', 'pw' : 'password'})
response = requests.get(host, data=my_prams)
728x90
반응형

'네트워크' 카테고리의 다른 글

[네트워크] FTP 서버  (0) 2023.04.28
[Python] 네트워크 기초와 소켓 (FTP 프로토콜)  (2) 2022.10.06

댓글