개발/python

#4.8 Status Codes

규지니어스 2022. 9. 22. 10:20

#4.8 Status Codes

전시간에 배운 내용 : URL을 수정하고 사용할 준비를 했다.

from requests import get

websites = (

"google.com",

"airbnb.com",

"https://twitter.com",

"facebook.com",

"https://tiktok.com"

)

for website in websites:

if not website.startswith("https://"):

website = f"https://{website}"

print(website)

---------------------------------------------------------

이번시간에는 website를 출력하는 것 대신에 get(website)를 해볼 예정이다.

* get function은 response를 return 해준다.

response는 웹사이트의 응답이다.

이 function이 무언가를 return 해주기에 그 값을 가져온다.

ex) return value는 function이 어떤 작업을 수행하고 어떤 값을 돌려주는 역할이다. 우리는 value 값을 변수로 받아야 한다.

response = get(website)

print (response)

========================================

from requests import get

websites = (

"google.com",

"airbnb.com",

"https://twitter.com",

"facebook.com",

"https://tiktok.com"

)

for website in websites:

if not website.startswith("https://"):

website = f"https://{website}"

response = get(website)

print(response)

> <Response [200]>

<Response [200]>

<Response [200]>

<Response [200]>

<Response [200]>

>> 웹사이트가 성공적으로 응답했다.

- 인터넷은 HTTP protocol에 기반한다.

그래서 컴퓨터들은 서로 HTTP request로 소통한다.

따라서 request가 정상인지 아닌지 판단하기 위해서

* request의 결과를 확인하는 방법으로 HTTP 코드를 사용한다.

100번대:

100 : continue를 의미

프로토콜을 업데이트 하는 걸 의미한다. switching protocol

200번대: OK 요청이 성공적으로 된 것을 의미한다.

300번대: redirection, cash를 위한 것이다.

400번대: 문제가 있을 때 보이는 것이다.

404 Not Found -> 서버가 뭔가를 찾을 수 없는 경우를 보여준다.

500번대:

* get function이 request한 response는 다른 것도 가지고 있다.

'상태코드'가 그 예다.

print(response.status_code)

> 200

200

200

200

200

위의 결과의 응답속도는 다 달랐다. 그 중 구글이 가장 빠른 속도로 응답했다.

if response.status_code == 200:

print (f"{website} is OK")

else :

print(f"{website} not OK")

=================================================================

from requests import get

websites = (

"google.com",

"airbnb.com",

"https://twitter.com",

"facebook.com",

"https://tiktok.com"

)

for website in websites:

if not website.startswith("https://"):

website = f"https://{website}"

response = get(website)

if response.status_code == 200:

print (f"{website} is OK")

else :

print(f"{website} not OK")

> https://google.com is OK

https://airbnb.com is OK

https://twitter.com is OK

https://facebook.com is OK

https://tiktok.com is OK

-----------------------------------------------------

OK나 Fail 응답으로 dictionary 만들기

results = {}

reponse를 받게 되면 여기서는 results dictionary 안에 새로운 entru를 추가할거다.

response[website] 를 넣을 예정이다.

위에 results[website]는 website가 https://google.com 라면 이랑 같은 의미다.

results = {}

for website in websites:

if not website.startswith("https://"):

website = f"https://{website}"

response = get(website)

if response.status_code == 200:

results[website] = "OK"

else :

results[website] = "FAILED"

print(results)

>{'https://google.com': 'OK', 'https://airbnb.com': 'OK', 'https://twitter.com': 'OK', 'https://facebook.com': 'OK', 'https://tiktok.com': 'OK'}

>>> list(또는 tuple)사용, for 반복문 사용, if else사용

잘한 점: 모르는 걸 반복해서 들었다. 잘 모르던 지식을 촘촘하게 쌓아가고 있다.

아쉬운 점: 지난시간부터 tiktok이 오타난 줄 도 모르고 tittok으로 써서 서버응답이 200이 뜨지 않았었다. 에러가 떠도 찾기가 쉽지 않았다. 앞으로 좀 더 꼼꼼하게 써야겠다.

'개발 > python' 카테고리의 다른 글

#4.7 Requests  (0) 2022.09.21
#4.6 URL Formmatting  (0) 2022.09.20
#4.5 For Loops  (2) 2022.09.19
#4.4 recap  (0) 2022.09.18
#4.3 Dics  (0) 2022.09.17