간단한 답변
아닙니다.http://와 https://는 트래픽 암호화 여부를 결정합니다. HTTP/1.1과 HTTP/2는 프로토콜 버전이며, 연결을 통해 요청이 전송되는 방식을 결정합니다. 두 가지의 어떤 조합도 가능합니다.
거의 모든 사용자는 아무것도 변경하지 않고 이 주소를 그대로 사용하시면 됩니다:
두 가지 서로 다른 차원
프로토콜 버전은 연결이 설정될 때 클라이언트와 서버 간의 협상을 통해 결정됩니다. 이는 URL 작성 방식에 의해 결정되지 않습니다. APIYI의
https:// 엔드포인트는 HTTP/1.1과 HTTP/2를 모두 지원하며, 클라이언트가 지원하는 프로토콜을 사용합니다.
따라서 “http는 HTTP/1.1을 의미하고 https는 HTTP/2를 의미한다”는 일반적인 인식은 오해입니다:
http://주소의 경우, 주류 클라이언트는 거의 항상 HTTP/1.1을 사용하지만 이는 결과적인 우연에 불과합니다https://주소의 경우, 클라이언트 자체에 따라 일부 클라이언트는 HTTP/1.1을 사용하고 다른 클라이언트는 HTTP/2를 사용합니다
주요 클라이언트의 기본 버전(https 기준)
실제로 사용하는 버전을 확인하려면 curl을 실행하십시오:
어떤 주소를 사용해야 합니까?
1
일반 사용자: https를 사용하고 아무것도 변경하지 마십시오
API를 직접 호출하는 개인 및 기업은
https://api.apiyi.com을(를) 사용해야 합니다. Python, Node 및 기타 언어용 일반 SDK는 프로토콜 조정이 필요 없이 있는 그대로 잘 작동합니다.2
높은 동시 실행 수로 이미지를 업로드하는 Go / Java 클라이언트: https를 유지하고 클라이언트에서 HTTP/2를 비활성화하십시오
HTTP/2는 단일 연결에서 여러 동시 요청을 처리합니다. 수 MB 크기의 이미지를 업로드할 때 해당 연결에서 지연이 한 번만 발생해도 그 연결의 모든 요청이 느려집니다. 클라이언트의 기본값이 HTTP/2이고 높은 동시 실행 수로 이미지 생성 또는 편집을 실행하는 경우, 클라이언트를 HTTP/1.1로 전환하십시오. https 주소를 유지하십시오. http로 전환할 필요는 없습니다.
3
http://api.apiyi.com:16888: 대체용으로만 사용
이는 공식적으로 제공되는 평문 엔드포인트입니다. HTTPS 핸드셰이크 자체가 실패할 때 임시 해결 방법으로만 사용하거나(예: Python에서 SSLEOFError가 발생하지만 curl은 작동합니까?), 신뢰할 수 있는 내부 네트워크 또는 전용선 내부에서만 사용하십시오.
Go 클라이언트를 HTTP/1.1로 전환하는 방법
코드 수정이 필요 없는 방법은 프로세스에 환경 변수를 설정하는 것입니다. 이는 new-api 및 one-api와 같은 기성 게이트웨이 프로그램에 적합합니다:Transport.TLSNextProto을(를) nil이 아닌 빈 맵으로 설정하십시오:
흔히 하는 오해
http://가 더 빠릅니까?
http://가 더 빠릅니까?
Python 및 Node와 같이 이미 HTTP/1.1을 사용하는 클라이언트의 경우, http로 전환해도 단 한 번의 TLS 핸드셰이크(1초 미만)만 절약됩니다. 이는 수십 초에 달하는 이미지 생성 시간에 비하면 무시할 수 있는 수준이며, 암호화 보호를 잃게 됩니다.
HTTP/2를 끄려면 http://로 전환해야 합니까?
HTTP/2를 끄려면 http://로 전환해야 합니까?
아닙니다. HTTP/2는 클라이언트에서 비활성화할 수 있습니다. 위의 Go 예제를 참조하십시오. 다른 언어에도 유사한 설정 옵션이 있습니다. 그 후
https://api.apiyi.com을 계속 사용하시면 암호화가 적용된 HTTP/1.1을 이용하실 수 있습니다.HTTP/2는 좋지 않습니까?
HTTP/2는 좋지 않습니까?
아닙니다. 요청 크기가 작고 빈번한 브라우저 및 일반 텍스트 대화의 경우, HTTP/2 연결 재사용이 리소스를 절약해 줍니다. 단일 다중화 연결은 높은 동시 실행 수와 대용량 요청 또는 응답 본문이 결합될 때만 병목 현상을 일으킵니다.