간단한 답변
아니요.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 핸드셰이크 한 번만 절약됩니다(수백 밀리초에 불과함). 이는 수십 초가 걸리는 이미지 생성 시간에 비하면 무시할 수 있는 수준이며, 암호화를 사용하지 못하게 됩니다.
HTTP/2를 끄려면 http://로 전환해야 합니까?
HTTP/2를 끄려면 http://로 전환해야 합니까?
아닙니다. HTTP/2는 클라이언트에서 끕니다. 위의 Go 예제를 참조하십시오. 다른 언어에도 유사한 설정이 있습니다. 그런 다음에도
https://api.apiyi.com를 계속 사용하면 암호화된 HTTP/1.1을 사용할 수 있습니다.HTTP/2는 좋지 않습니까?
HTTP/2는 좋지 않습니까?
아닙니다. 요청이 작고 많은 브라우저 및 일반적인 텍스트 채팅에서는 HTTP/2 연결 재사용이 리소스를 절약합니다. 단일 다중화 연결은 높은 동시 실행 수와 큰 요청 본문 또는 응답 본문이 함께 사용될 때에만 병목이 됩니다.