Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 361. Azure Web App(App Service)의 HTTP/2 프로토콜 지원 [링크 복사], [링크+제목 복사],
조회: 17209
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

(시리즈 글이 5개 있습니다.)
개발 환경 구성: 361. Azure Web App(App Service)의 HTTP/2 프로토콜 지원
; https://www.sysnet.pe.kr/2/0/11493

웹: 40. IIS의 HTTP/2 지원 여부 - h2, h2c
; https://www.sysnet.pe.kr/2/0/12495

.NET Framework: 1014. ASP.NET Core(Kestrel)의 HTTP/2 지원 여부
; https://www.sysnet.pe.kr/2/0/12500

.NET Framework: 1015. .NET 5부터 HTTP/1.1, 2.0 선택을 위한 HttpVersionPolicy 동작 방식
; https://www.sysnet.pe.kr/2/0/12501

.NET Framework: 1016. .NET Core HttpClient의 HTTP/2 지원
; https://www.sysnet.pe.kr/2/0/12502




Azure Web App(App Service)의 HTTP/2 프로토콜 지원

좋은 소식이 있군요.

Announcing HTTP/2 support in Azure App Service
; https://azure.microsoft.com/en-us/blog/announcing-http-2-support-in-azure-app-service/

지원은 하지만, 현재 Azure Portal의 UI상으로는 설정 옵션이 없다고 합니다. 대신 프로그래밍으로 On/Off할 수 있는데요, RESTful API를 직접 만들어 조작하는 것도 가능하지만, Azure Portal에서 제공하는 "Resource Explorer"를 이용하는 것이 더 편합니다.

위의 글에도 나오는데 ^^ 그래도 직접 실습해 볼까요? 우선, 다음과 같은 URL로 리소스 탐색기 페이지를 방문합니다. (또는, azure portal을 통해 제공되는 Resource Explorer 메뉴를 이용해도 같은 화면이 나옵니다.)

리소스 탐색기
; https://resources.azure.com/subscriptions

리소스 탐색기 화면에 진입했으면 아래와 같이 왼쪽 트리 메뉴를 이용해 HTTP/2 프로토콜을 설정할 App Service 항목으로 이동합니다.

azure_http2_1.png

위의 노드에서 다시 하위로 "./config/web" 노드로 이동한 다음, 상단에 있는 "Read Only" 상태를 "ReadWrite"로 바꿔 편집이 가능하도록 만듭니다.

azure_http2_2.png

그다음, "Data (GET,PUT)" 탭의 "Edit" 버튼을 눌러 편집 상태로 만들고 JSON 텍스트에서 다음의 설정을,

"http20Enabled": false,

true로 바꾼 후 "PUT" 버튼을 누릅니다. 이제부터 해당 App Service에는 HTTP/2 프로토콜이 지원됩니다. 응용 프로그램 단에서 바뀌는 것은 없으니, 그냥 공짜 점심이라고 말할 수 있겠군요. ^^




자, 그럼 실제로 HTTP/2 프로토콜이 적용되었는지 어떻게 알 수 있을까요? 크롬 브라우저의 개발자 도구를 이용해 "네트워크" 기능의 "Protocol" 칼럼을 활성화시키고,

View the HTTP/SPDY/HTTP2 Protocol in Google Chrome
; https://ma.ttias.be/view-http-spdy-http2-protocol-google-chrome/

HTTP/2 활성화를 시킨 App Service 사이트를 방문하면 다음과 같이 Protocol이 "h2"로 나오는 것을 확인할 수 있습니다.

azure_http2_3.png

참고로, 현재 HTTP/2는 대부분의 브라우저들이 HTTPS에 대해서만 사용하므로 요청을 https://...로 보내야만 합니다. 만약 http로 요청을 보내면 위의 프로토콜 탭의 내용이 "http/1.1"로 바뀝니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/27/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...
NoWriterDateCnt.TitleFile(s)
13566정성태2/27/20249583오류 유형: 897. Windows 7 SDK 설치 시 ".NET Development" 옵션이 비활성으로 선택이 안 되는 경우
13565정성태2/23/20248666닷넷: 2219. .NET CLR2 보안 모델에서의 개별 System.Security.Permissions 제어
13564정성태2/22/202410176Windows: 259. Hyper-V Generation 1 유형의 VM을 Generation 2 유형으로 바꾸는 방법
13563정성태2/21/20249669디버깅 기술: 196. windbg - async/await 비동기인 경우 메모리 덤프 분석의 어려움
13562정성태2/21/20249375오류 유형: 896. ASP.NET - .NET Framework 기본 예제에서 System.Web에 대한 System.IO.FileNotFoundException 예외 발생
13561정성태2/20/202410183닷넷: 2218. C# - (예를 들어, Socket) 비동기 I/O에 대한 await 호출 시 CancellationToken을 이용한 취소파일 다운로드1
13560정성태2/19/202410226디버깅 기술: 195. windbg 분석 사례 - Semaphore 잠금으로 인한 Hang 현상 (닷넷)
13559정성태2/19/202411058오류 유형: 895. ASP.NET - System.Security.SecurityException: 'Requested registry access is not allowed.'
13558정성태2/18/202410213닷넷: 2217. C# - 최댓값이 1인 SemaphoreSlim 보다 Mutex 또는 lock(obj)를 선택하는 것이 나은 이유
13557정성태2/18/20249091Windows: 258. Task Scheduler의 Author 속성 값을 변경하는 방법
13556정성태2/17/20249461Windows: 257. Windows - Symbolic (hard/soft) Link 및 Junction 차이점
13555정성태2/15/20249693닷넷: 2216. C# - SemaphoreSlim 사용 시 주의점
13554정성태2/15/20249110VS.NET IDE: 189. Visual Studio - 닷넷 소스코드 디컴파일 찾기가 안 될 때
13553정성태2/14/20248622닷넷: 2215. windbg - thin/fat lock 없이 동작하는 Monitor.Wait + Pulse
13552정성태2/13/20248747닷넷: 2214. windbg - Monitor.Enter의 thin lock과 fat lock
13551정성태2/12/20249853닷넷: 2213. ASP.NET/Core 웹 응용 프로그램 - 2차 스레드의 예외로 인한 비정상 종료
13550정성태2/11/202410322Windows: 256. C# - Server socket이 닫히면 Accept 시켰던 자식 소켓이 닫힐까요?
13549정성태2/3/202411272개발 환경 구성: 706. C# - 컨테이너에서 실행하기 위한 (소켓) 콘솔 프로젝트 구성
13548정성태2/1/202410842개발 환경 구성: 705. "Docker Desktop for Windows" - ASP.NET Core 응용 프로그램의 소켓 주소 바인딩(IPv4/IPv6 loopback, Any)
13547정성태1/31/202410513개발 환경 구성: 704. Visual Studio - .NET 8 프로젝트부터 dockerfile에 추가된 "USER app" 설정
13546정성태1/30/202410210Windows: 255. (디버거의 영향 등으로) 대상 프로세스가 멈추면 Socket KeepAlive로 연결이 끊길까요?
13545정성태1/30/20249738닷넷: 2212. ASP.NET Core - 우선순위에 따른 HTTP/HTTPS 호스트:포트 바인딩 방법
13544정성태1/30/20249360오류 유형: 894. Microsoft.Data.SqlClient - Could not load file or assembly 'System.Security.Permissions, ...'
13543정성태1/30/20249785Windows: 254. Windows - 기본 사용 중인 5357 포트 비활성화는 방법
13542정성태1/30/20248870오류 유형: 893. Visual Studio - Web Application을 실행하지 못하는 IISExpress - 두 번째 이야기
13541정성태1/29/20249639VS.NET IDE: 188. launchSettings.json의 useSSL 옵션
1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...