HTTP프로토콜에서 청크와 컨텐츠렝스의 차이(Content-Length VS Transfer-Encoding: chunked) > 개발관련
개발관련

HTTP프로토콜에서 청크와 컨텐츠렝스의 차이(Content-Length VS Transfer-Encoding: chunked)

조회 1,169회 댓글 0건
  • 현재 페이지 주소 복사
  • 페이스북으로 공유
  • X 로  공유
  • 트위터로  공유
  • 네이버 블로그로 공유
  • 네이버 카페 공유하기
  • 네이버 라인 공유하기
  • 네이버 밴드 공유하기
  • 링크드인으로 공유하기
  • 핀터레스트에 공유하기

서버에서 클라이언트로 데이터를 전송해주는 방법은 두가지가 있습니다.

1) 모든것이 끝나면 전송(완성된 형태)

2) 불완성된 형태(처리하면서 그때 그때 보내줌)


위 두가지 방식에서 첫번째를 Content-Length 두번째를 Transfer-Encoding: chunked 헤더에 표시하여 보내줍니다.

첫번째 컨텐츠렝스에 해당하는 형태는 아래와 같습니다.

- 파일다운로드(이때 프로그래스바를 보여주려면 전체 사이즈를 알아야 합니다.)

- 정적인 HTML 파일

- 동적이지만 미리 만들어놓은 정적인 파일과 약간의 동적인 경우(빠르게 보여주기 위한것)

- js, css 파일(동적일 수 있지만 그런 경우는 흔하지 않을듯. 0.1% 이하)

- 이미지 파일들(이경우도 동적 처리가 있을 수 있지만 흔하지 않을듯)

- 압축된 데이터를 전송하고자 할때(js, css 등은 서버에서 자동 압축 하는 설정을 사용 하기도 합니다.)

- 경우에 따라 동적인 것도 전송양을 줄이기 위해 압축 하는 경우(이때는 처리가 끝나야 압축이 되는것을 감안하고 만들어야함)


두번째 청크 방식은

- 스트림 형태로 데이터를 보내주고자 할때

- 처리된 것을 바로바로 보내어 브라우저에서 일부라도 처리하게 하고플때(우리가 가장 흔하게 보는 방식)



 


제가 좀더 자세히 정리한것은 아래 링크를 참고하세요.

ChatGPT/PHP/Congent-Length vs Chunk at main · pabburi2/ChatGPT · GitHub 

  • 현재 페이지 주소 복사
  • 페이스북으로 공유
  • X 로  공유
  • 트위터로  공유
  • 네이버 블로그로 공유
  • 네이버 카페 공유하기
  • 네이버 라인 공유하기
  • 네이버 밴드 공유하기
  • 링크드인으로 공유하기
  • 핀터레스트에 공유하기
전체 241건 1 페이지
  • profile_image 맥미니에서는 Homebrew로 Apache(httpd) + PHP를 설치하는 방식이 가장 간단 한데 현재 Homebrew 기준 httpd는 Apache 2.4이고 php는 기본 설치 시 PHP 8.5 계열이 설치된다.당장은 PHP만 필요 하기 때문에 아래와 같이 PHP 설치리눅스를 레드햇 사용하느냐 맨드레이크냐 이런것 처럼 맥OS도 유닉스 계열이기 때문에 비슷한 환경이라 생각하고 사용하면 된다.몇가지 다른 부분이 있지만 유닉스 파생된 OS가 모두 조금씩 다른것 처럼 하고 생각하면 그만임. brew를 사용해 설치할 계획이기 때문에 설치가 안되었으면 먼저 설치 한다.whereis /bin/bashwhereis cu…
  • profile_image 맥미니에서 아래와 같이 쉽게 설치 하고 사용 할 수 있습니다.brew install tigger04/tap/superscale# 아래와 같이 하면 x2 형태가 파일명(input_x2.png)에 붙어 파일이 저장된다.superscale -s 2 input.png아래는 업스케일링 결과 입니다.단순히 이미지 키운것과 업스케링 한것과의 확연한 차이를 볼 수 있습니다. 
  • profile_image 보통 프로그래머라 하면 키보드를 붙잡고 알 수 없는 영문자를 빠르게 두드리는 사람을 떠올린다. 하지만 실제 개발 일은 그보다 건설 현장에 가까운데 무엇을 지을지 설계도를 그리고 철근으로 골격을 세우고 시멘트를 바르고 벽돌을 하나씩 쌓는 작업이다. 키보드는 마지막 순간의 연장 도구일 뿐이다. ▷ 일반인이 잘못 이해하고 있는 것들착각 1: 개발은 타자를 빨리 치는 능력이다실제로는 코드를 치는 시간보다 화면을 보며 고민하는 시간이 훨씬 길다. "어떻게 만들 것인가"를 먼저 설계하고 나서야 손이 움직인다.착각 2: 코딩 실력이 좋으면 좋은 프로그램이 나온다건물의 완성도는 벽돌치기 솜씨보다 설계도가 결…
  • profile_image 작은 몸체에 열이 많아서 외부 온도와 팬 속도를 모니터링 해서 맥미니 오래 사용하려고 모니터링 하기 위해서 하나 구입한 온습도계 입니다.우선 가을이 되면 괜찮은데 여름이 문제네요. 9,10월 ~ 4월까지는 확실히 괜찮지만 그외 시간은 열 관리에 특별히 더 신경을 써야 합니다.IDC 같은곳에 두는 경우는 산뜻한 환경이라서 이런 모니터링 하면서 시간을 버릴 필요는 없습니다.샤오미 미지아 블루투스 온습도계 2 = LYWSD03MMC라면 맥미니에서 직접 읽을 수 있습니다. 공식 사양상 Bluetooth 4.2 BLE 제품중요한 점은 macOS의 Bluetooth 설정에서 일반 기기처럼 페어링할 필요가 없다는 것입니다.…
  • profile_image 유닉스는 크게 AT&T 계열과 BSD 계열이 있고 BSD쪽이 성능이 더 좋은것으로 그래서 freeBSD 예전에 많이들 사용하고 그랬지만 그래도 리눅스보단 훨씬 덜사용 그런데 왜? 리눅스가 더 커졌을까?> 승부를 가른 건 성능 자체보다 라이선스, 타이밍, 드라이버, 배포판, 기업 지원, 클라우드 생태계macOS는 생각보다 Linux보다 FreeBSD/BSD 쪽과 혈통상 더 가깝고 명령은 리눅스 쓰던 사람은 그대로 사용 가능한것이 상당히 많다. 둘 다 Unix/POSIX 문화권에 있기 때문.난 지금까지 리눅스는 AT&T 기반으로 BSD가 섞인거라고 알고 있었는데 아니라고 하네요…
  • profile_image 웹루트 밖에 중요한 파일을 두면 안전하지만 관리측면에선 불편한 측이 있습니다. 웹서버 설정도 그렇고 하지만 초기 한번 설정 잘 하면 평생 잘 사용하는 방법 이기도 합니다.요즘 .env 파일 github에 올려서 이것만 찾는 봇이 있을 정도 라고 하지요.반드시 이 방식을 사용할 필요는 없는데 ... 작게 할일을 크게 하기도 하고. 정작 커졌을때는 그에 맞게 되어 있지 않고.오래된 방식인데 요즘 이렇게 안 하시는 분들 많은듯 싶습니다.웹서버를 통해서는 웹루트 밖에는 접근 자체가 안되는 방식이지만 백엔드 프로그램에선 접근해서 사용이 가능합니다.웹서버와 PHP 같은 백엔드 프로그램을 동일시 보시는분들이 있던데 전혀 다른 것입니…
  • profile_image CLI 프로그램 여러개를 테스트 하면서 공통으로 쓰이는 파일은 하나면 좋겠다는 생각이 들었습니다.이것 저것 수정하는데 몇 번은 괜찮은데 빠르제 지쳐가는 내 모습이 느껴 지면서 방법을 찾아 보았는데 대략 다음과 같습니다.- 최근 버전의 윈도우도 심볼릭 링크를 지원하기에 심볼릭 링크를 사용합니다.- 원격지와 공유가 가능하면 공유 디렉토리 지정해서 파일을 동시 사용- 에이전트에서 PHP의 include 처럼 포함시키는 명령이 있으면 그것 사용 ▷ 윈도우CMD에서의 구문 순서는 mklink [링크 경로] [원본 경로]mklink "C:\Path\To\GEMENI.md" "C:\Path\To\AGENTS.md"* 파워셀…

상업적 이용 금지. 컨텐츠는 개인 용도로만 사용이 가능 합니다.