HTTP 헤더에 부분에 Connection 키라는 값 중 Keep-alive라는 옵션이 있음.
이것이 무엇인지 http를 사용하는데 대한 역할과 어떤 상황에서 사용되는지 알아보기
HTTP 헤더의 Connection은 클라이언트와 서버 간의 연결 유지 및 관리에 관련된 역할을 한다.
Keep-alive 라는 옵션은 클라이언트와 서버 간의 지속적인 연결을 유지하기위해 설정해준다.
기본적으로 HTTP는 각 요청마다 새로운 연결을 맺고 처리한 후에는 연결을 닫는 방식으로 동작하는데
이 과정을 매번 수행하기엔 리소스와 시간이 소요되어서 Keep-alive 옵션을 도입했다.
위 사진에서 보면 timeout=5, max=1000 라고 되어있는데
timeout=5 는 5초 동안 유지 한다는 뜻이고
max=1000 는 트랜젝션 1000개까지 유지 한다는 뜻이다.
HTTP 1.0 에서는 헤더에 Keep-alive 옵션을 추가해줘야 동작하고
HTTP 1.1 에서는 기본 값으로 Keep-alive가 설정되어 있다
Keep-alive 를 사용하는 상황은 뭘까??
웹페이지에서 리소스를 가져와야 할 때
Keep-alive를 사용하고 있다면 클라이언트가 한 번의 연결로 웹페이지의 리소스를 연속적으로 요청하고 받을 수 있다.
실시간 업데이트
웹페이지에서 동적으로 데이터를 업데이트하거나 추가 정보를 요청할 때 Keep-alive 를 사용하면
클라이언트와 서버 간의 연결을 유지하면서 실시간으로 데이터를 주고받을 수 있다.
정보
MDN에서 Keep-alive 는 비표준 이다.
HTTP 2 에서는 무시된다.
JSON 파일에 대해 간략히 알아보고 Python으로 json 파일을 Read, write 할 수 있는 코드 제출하기 (json 파일에 대한 스터디 자료도 제출)
JSON (JavaScript Object Notation)
Javascript 객체 문법을 따르는 문자 기반의 데이터 포맷
JS가 아니더라도 JSON을 읽고 쓸 수 있다
JS 객체 문법을 따르고 있어 Key/Value 로 데이터를 표현한다.
Python으로 json 파일을 Read
py 코드
import json
file_path = "8.09/test_read.json"
with open(file_path, 'r') as file:
data = json.load(file)
print(data)
json 코드
{
"name": "고랑",
"stack": "백엔드",
"blog": "https://gorangcodingstory.tistory.com",
"github": "https://github.com/go-tiger"
}
로 작성하고 실행을 했을때
다음과 같은 오류가 발생했다.
여기서 cp949로 인코딩 되어있어 해석할 수 없다고 나온다.
그럼 코드에 인코딩을 적어줘서 오류를 해결해 보자
py 코드의 5번째줄에 encoding='utf-8' 를 추가해준다.
with open(file_path, 'r', encoding='utf-8') as file:
이것처럼 읽어와 지는걸 확인할 수 있다.
Python으로 json 파일을 Write
py 코드
import json
data = {
"name": "티스토리",
"stack": "풀스택",
"blog": "https://tistory.com",
"github": "https://github.com"
}
file_path = "8.09/test_write.json"
with open(file_path, 'w', encoding='utf-8') as file:
json.dump(data, file)
코드를 작성하고 실행했을때 다음과 같이 한글이 깨져서 저장이 된다.
json.dump() 의 파라미터중에
ensure_ascii 라는게 있다.
기본은 True이고 파이썬 문자열을 JSON으로 변환할 때 ASCII 문자로 인코딩된다
이 과정에서 유니코드 문자들은 ASCII 문자 형식으로 변환되서 위에 test.json 처럼 \ud2f0 등으로 변환된다
사용 하지 않을려면 False 해줘야 한다.
13번째 줄에 ensure_ascii=False 를 추가해주고 실행하면 정상적으로 저장이 된다.
json.dump(data, file, ensure_ascii=False)
과제 제출 깃헙
https://github.com/go-tiger/AI-web-camp/tree/main/8.09
참고링크
Keep-Alive - HTTP | MDN
Keep-Alive 일반 헤더는 송신자가 연결에 대한 타임아웃과 요청 최대 개수를 어떻게 정했는지에 대해 알려줍니다.
developer.mozilla.org
JSON으로 작업하기 - Web 개발 학습하기 | MDN
JavaScript Object Notation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다(서버에서
developer.mozilla.org
Python JSON file 다루는 방법 (json 파일 읽기, 쓰기, 수정 하는 방법)
Python JSON file 다루는 방법 (json 파일 읽기, 쓰기, 수정 하는 방법) Python 에서 json 파일을 읽고, 쓰고, 수정하는 방법을 알려드리도록 하겠습니다. JSON 파일 쓰는 방법 - json.dump() import json data = { "olivi
jsikim1.tistory.com
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.
'코딩캠프 > AI 웹개발 취업캠프' 카테고리의 다른 글
[AI 웹개발 취업캠프] 23.08.10 과제 (0) | 2023.08.10 |
---|---|
[AI 웹개발 취업캠프] 19Day - 백엔드 HTTP(3), Rest API(1) (1) | 2023.08.10 |
[AI 웹개발 취업캠프] 18Day - 백엔드 HTTP(2) (0) | 2023.08.09 |
[AI 웹개발 취업캠프] 17Day - 백엔드 HTTP(1) (0) | 2023.08.08 |
[AI 웹개발 취업캠프] 23.08.08 과제 (0) | 2023.08.08 |