HTTP 고급 기사

MIME 데이터 유형

1. 텍스트 : 읽을 데이터입니다 텍스트 형식으로, 우리는뿐만 아니라, text / html과 함께 가장 잘 알고 있어야하고, 하이퍼 텍스트 문서를 표시해야
거기에 일반 텍스트 텍스트 / 일반, 스타일 텍스트 / CSS를하고 등등.
2. 이미지 : 즉, 이미지 파일, 이미지 / GIF 이미지 / JPEG있다 이미지 / PNG 등.
(3) 오디오 / 비디오 : 예처럼 오디오 / 된 MPEG 비디오 / MP4 등의 오디오 및 비디오 데이터.
4. 애플리케이션 : 데이터 형식은 고정되지 않고, 수있다 텍스트 이진 수 있으며, 이는 상위 계층 애플리케이션에 의해 해석되어야한다.
일반적인 응용 프로그램 / JSON, 응용 프로그램 / 자바 스크립트입니다 응용 프로그램 / PDF 당신이 정말로하지 않는 경우, 또한 등,
그냥 "블랙 박스"말했듯이, 데이터의 종류가 무엇인지,이 불투명는 응용 프로그램 / octet-stream을 될 것입니다
이진 데이터.

인코딩 형식으로 인코딩 유형

1. GZIP : GNU ZIP 압축 형식은 인터넷에서 가장 인기있는 압축 포맷입니다
2. 폐의 : 초 만 GZIP의 인기 ZLIB합니다 (폐의) 압축 포맷;
3. BR : 새로운 압축 알고리즘은 HTTP를 위해 특별히 최적화 (Brotli).

 

 

 

 

 

 

 

 

 당신이 HTML 파일의 대부분을 사용하려면 브라우저를 나타냅니다, 무게는 XML 파일 다음에, 1, 무게는 0.9, 그리고 마지막으로 모든 데이터 유형, 무게는 0.8이다. 서버가 요청 헤더를 수신 한 결과, 실제 상황에 따라 다음 출력 HTML 또는 XML 우선 순위 가중치를 계산 한 것이다.

 

큰 파일을 전송

등 gzip으로 압축 알고리즘 보통 텍스트 파일, 사진, 오디오, 비디오 및 기타 멀티미디어 데이터 자체에 대한 더 나은 압축 비율이 이미 매우, 프로세스는 작은 GZIP이되지 않는 압축

전송 블록

전송 - 인코딩 :이 두 분야에서 응답 메시지가 동시에 표시 할 수없는 말을하는 것입니다 청크 "와"이 두 분야가 상호 배타적 콘텐츠 길이 "는, 응답 패킷 전송 중 어느 알려진 길이 알 수없는 길이

GitHub의, GitHub의에서 다운로드 소스 패키지는 한 번에 오히려 모든 것보다 실시간으로 실시간 압축을 보내고 몸의 길이를 알 수없는 시작을 누른 후 좋은 압축을 전송합니다. 따라서 공지되어이 부분의 길이의 부분 만 알려질 최종 압축의 전체 길이를 보낼 청크 인코딩 압축 부분을 사용한다. 데이터를 송수신 "스트리밍"의 부호화에서 청크 데이터는 일반적으로 동적 데이터 즉, 즉석에서 생성된다

범위 요청

서버가 앞서 응답 분야에서 사용되어야하므로 웹 서버는 필요한 기능을 달성 할 수 있지 않거나 실현 될 수 없습니다 "동의-범위를 : 바이트"분명히 클라이언트에 통보 "나는 요청의 범위를 지원합니다."

범위는 HTTP 헤더 필드 범위 요청을 전용 포맷은 '바이트 XY = "x와 y의 범위는 데이터 바이트 곳이다.

응용 프로그램 : 중단 점 다운로드

데이터의 여러 조각

이 상황은 특정 MIME 형을 이용 필요 메시지 본문은 멀티 바이트 시퀀스의 세그먼트로 구성되고 있음을 나타내는 "다중 / byteranges를"을 또한 파라미터 세그먼트 사이의 "경계 = XXX"주어진 분리도 표시합니다.

긴 연결 연결 : 연결 유지

TCP 연결이 오랫동안 닫혀 있지, 서버는 서버 리소스를 차지하는 메모리의 상태를 저장해야합니다. 당신은 무료로 긴 머리를 많이 심지어 유일한 연결되지 않습니다 경우, 그것은 곧 정말 사용자를위한 필요 서비스를 제공 할 수있는 서버의 결과로, 서버 자원 부족하게됩니다. 필드 서버에게 "가까이 연결": 클라이언트에서, 당신은 사전에 요청을 추가 할 수 있습니다. "연결이 닫힌 후이 통신을" 서버 우리는 또한이 분야에서 추가 그래서 응답 메시지에, 클라이언트가 연결을 닫습니다 주도권을 쥐고 것을 알고,이 분야를보고, 소켓 API가 전송 후 TCP 연결을 닫습니다 호출합니다.

서버는 보통 연결을 닫습니다 주도권을 쥐고하지 않습니다, 또한 nginx를 예를 얻기 위해 몇 가지 전략을 사용할 수 있습니다

keepalive_timeout 긴 연결 시간 제한 제공

"연결 요청 keepalive_requests의 최대 수는 긴 전송 가능한 제공

FIFO 큐를 차단

 

 并发连接:是同时对一个域名发起多个长连接,用数量来解决质量的问题。

浏览器限制连接次数,那就域名分片,就多开几个域名,比如shard1.chrono.com、shard2.chrono.com,而这些域名都指向同一台服务器www.chrono.com

Cookie : 生存周期 Expires和Max-Age

在JS脚本里可以用document.cookie来读写Cookie数据,属性“HttpOnly”会告诉浏览器,此Cookie只能通过浏览器HTTP协议传输,禁止其他方式访问

SameSite”可以防范“跨站请求伪造”(XSRF)攻击,设置成“SameSite=Strict”可以严格限定Cookie不能随着跳转链接跨站发送

还有一个属性叫“Secure”,表示这个Cookie仅能用HTTPS协议加密传输,明文的HTTP协议会禁止发送。明文的HTTP协议会禁止发送。但Cookie本身不是加密的,浏览器里还是以明文的形式存在。

추천

출처www.cnblogs.com/autointerface/p/11941745.html