무제한 상거래 CGI. 전자상거래 - 그게 뭐죠? E-Commerce Partners Network는 최대 온라인 상점의 제휴 프로그램입니다. 매킨토시에 CGI 설치하기

명확한 러시아어로 된 전자상거래. 온라인 비즈니스는 어떻게 진행되나요?

최근에는 온라인 거래와 관련된 프로젝트가 점점 더 많아지고 있습니다. 이 분야를 연구하는 동안 프로세스에 대한 일반적이고 이해하기 쉬운 설명을 찾을 수 없었습니다. 그래서 전자상거래 등의 분야에서 절차를 이해하기 위해 항상 참고할 수 있는 치트 시트 같은 것을 만들기로 했습니다.

고객 유치에 도움이 되는 프로세스와 채널에 중점을 두고 즉시 예약하겠습니다.

전자상거래: 무엇에 관한 것인가요?

다양한 출처의 정의는 인터넷을 통한 상품이나 서비스 판매에 대해 알려줍니다. 간단히 말해서 전자상거래는 돈이 나타나는 모든 온라인 활동입니다.

쇼핑, 판매, 보험, 은행, 전자화폐, 모든 것이 여기에 있습니다. 그것을 받아 서명하십시오.

대상에서

문제를 이해하려면 맨 끝부터 경로를 시작하는 것이 좋습니다. 모든 사업의 목표는 무엇입니까? 그렇죠, 돈을 벌어보세요. 예를 들어 실리콘 양말과 같은 제품을 상상해보십시오. 왜 안 돼!

가장 먼저 떠오른 생각은 다음과 같은 것이 있다는 것이 밝혀졌습니다 ...

우리의 임무는 이 양말로 돈을 버는 것입니다. 우리는 인터넷에 대해 생각하고 있습니다. 흠... 웹사이트를 구축하면 판매가 진행되는 것이 어떻겠습니까? 그냥 몰디브에 머물게 해주세요! 그러나 그렇게 간단하지는 않습니다.

저는 그림 그리는 걸 정말 좋아해요. 이는 다양한 프로세스를 이해하는 데 도움이 됩니다. 그려 보자?!

지금까지 우리 모델은 다음과 같습니다. 우리는 양말을 가져다가 인터넷에 올려놓고 돈을 받습니다. 정말 훌륭해요! 당신의 눈은 불타고 손바닥은 땀을 흘리며 이미 사업에 착수하고 싶습니다. 그런데 웹사이트나 판매 플랫폼을 만들어야 합니까?

판매용 웹사이트 또는 플랫폼

귀하의 제품을 World Wide Web에 게시하기 위한 다양한 솔루션이 있습니다. 자신만의 웹사이트를 만들거나 제3자 플랫폼(그룹, 소셜 네트워크 페이지, 게시판 등)을 사용할 수 있습니다. 현장에서 멈추자.

웹사이트를 주문했거나, 미리 만들어진 템플릿을 사용했거나, 웹사이트 빌더(구글 CMS 사용 가능)를 사용하여 직접 만들었거나 상관없습니다. 그런 다음 그들은 다양한 유형의 실리콘 양말을 배치하고 행복했습니다.

읽기를 방해해서 죄송합니다. 내 텔레그램 채널에 가입하세요. 새로운 기사 발표, 디지털 제품 개발 및 성장 해킹 등 모든 것이 있습니다. 너를 기다리고있어! 계속하자...

결제 시스템

그러나 지금 여기에서 누군가가 귀하로부터 제품을 구매하려면 결제 시스템을 조정해야 합니다. 이것은 은행 카드, 인터넷 머니, 휴대폰 및 기타 여러 가지를 통해 온라인으로 구매할 수 있는 일종의 서비스입니다. 이를 위해서는 거래의 일부를 공유해야 하지만 이렇게 하면 인생이 훨씬 쉬워질 것입니다.

귀하에게 맞는 서비스를 선택하세요. 어딘가에 백분율이 더 높을 것이고 어딘가에 구독이나 다른 것이 있을 것입니다. 조금만 연구해 보세요. 웹사이트에 필수 코드를 입력하고 모든 거래를 카드 계정에 연결하세요.

그게 전부인 것 같습니다. 홈페이지도 있고, 상품카드도 있고, '구매' 버튼도 작동되는데 뭔가 빠졌네요... 구매하려는 고객의 흐름이 없습니다.

고객 흐름

여기서: CAC = 신규 고객 확보 비용. MCC(마케팅캠페인 비용) = 고객 유치(유지 목적은 아님)를 위한 마케팅 비용 총액입니다. W(임금) = 마케팅 담당자 및 영업 관리자의 급여입니다. S(소프트웨어) = 광고 및 판매에 사용되는 소프트웨어 비용(예: 사용된 판매 플랫폼, 마케팅 자동화, A/B 테스트, 분석 서비스 등) PS(professionalservices) = 마케팅 및 영업 부서에 제공되는 전문 서비스(디자인, 컨설팅 등) 비용. O(기타) = 마케팅 및 영업 부서와 관련된 기타 간접비입니다. CA(고객 확보) = 총 유치 고객 수입니다.

그러나 우리는 고객의 품질을 잊어서는 안 되며 LTV가 여기서 도움을 줄 것입니다.

중요 지표: LTV

고객 라이프사이클인 실시간 가치(Live Time Value)는 전자상거래에서 고려해야 할 또 다른 지표입니다. 한 고객이 평균적으로 얼마나 많은 수입을 올리는지를 보여줍니다. 계산에는 다양한 접근 방식이 있는데, 저는 가장 정확한 것 중 하나로 이익을 기반으로 한 실제 접근 방식을 선택했습니다.

이는 단순히 개별 고객의 전체 구매 내역에 대한 총 수익의 합계입니다. 모든 고객 구매(거래)의 합계를 거래 N에 추가합니다. 여기서 거래 N은 고객이 회사에서 마지막으로 구매한 것입니다. 모든 고객 거래 데이터에 액세스할 수 있는 경우 Excel을 사용하여 이를 쉽게 계산할 수 있습니다.

LTV = (거래 1 + 거래 2 + 거래 3... + 거래 N) x 수익의 이익 지분.

순이익을 기준으로 LTV를 계산하면 궁극적으로 고객이 회사에 가져오는 실제 이익을 알 수 있습니다. 여기에는 고객 서비스 비용, 유지 비용, 유치 비용 등이 고려됩니다. 결과는 개별 데이터를 기반으로 한 계산의 전체 복합체입니다. 시간이 지남에 따라 고객당 창출된 총 이익을 통해 현재까지 고객의 수익성을 정확하게 이해할 수 있습니다.

다른 접근법은 다음에서 찾을 수 있습니다.

중요 지표: CAC 및 LTV 비율

비즈니스의 생존 가능성을 이해하려면 언급된 두 CAC:LTV 비율의 비율을 살펴보는 것이 매우 중요합니다.

  • 1:1 미만 - 파산을 향해 전속력으로 돌진하고 있습니다.
  • 1:1 – 고객을 유치할 때마다 돈을 잃습니다.
  • 1:2 – 좋은 것 같지만 돈을 충분히 투자하지 않아서 더 빨리 발전할 수 있는 것 같습니다. 더욱 공격적인 고객 확보 캠페인을 시작하고 1:3에 가까운 비율을 달성하세요.
  • 1:3 – 이상적인 비율. 귀하는 번창하는 사업과 강력한 비즈니스 모델을 갖고 있습니다.

중요 지표: ROI를 잊지 마세요

위에서 논의한 것처럼 전자상거래에서는 인수 채널을 사용하는 것이 수익성이 있는지 여부를 명확하게 이해해야 합니다. LTV와 CAC 외에도 ROI라는 또 다른 중요한 지표가 있습니다. 이는 귀하의 투자(저희 경우에는 광고에 대한 투자)가 성과를 거두었는지 여부를 보여줍니다. 그건. 결국 1 투자 루블이 우리에게 얼마나 많은 것을 가져 왔는지.

계산에는 매우 간단한 공식이 사용됩니다.

여기서 "캠페인 수익"은 채널 수입과 제품 비용의 차이입니다. 그리고 수익을 계산하려면 광고비를 빼면 됩니다.

따라서 더 자세한 공식은 다음과 같습니다.

ROI = (채널 수익 – 비용) – 광고비 / 광고비 x 100%

계산에 대한 더 자세한 예를 읽어보세요. 실제로 이 간단한 수식은 모든 것이 자동으로 계산되는 동일한 Excel 테이블에 배치됩니다.

우리가 논의한 세 가지 지표는 모두 전자상거래에서 중요합니다. 각각을 통해 흐름에서 병목 현상을 찾아 작업할 수 있습니다. 여기에 비즈니스의 성장 잠재력이 있습니다. 양말로 모델에 조금 더 추가했습니다.

모든 것을 하나의 자료에 담는 것은 불가능하며 누가 그것을 오랫동안 읽을 것입니까? 나중에 판매에 방해가 될 수 있는 전자상거래의 뉘앙스에 대해서는 별도로 안내해 드리겠습니다.

전반적으로, 이제 온라인 거래 또는 전자상거래에 대한 일반적인 이해를 갖추셨습니다. 게다가 “악마는 디테일에 있다”는 말도 있다. 각 채널을 개별적으로 연구하고, 성과 지표를 계산하고, 작은 것에서 새로운 통찰력을 찾아보세요. 당신을 위한 인터넷 판매, 그리고 그 이상! 그리고 또 하나의 자료가 있습니다.

네, 깜빡할 뻔했어요. 독자 여러분, 새해 복 많이 받으세요! 내년에도 큰 승리와 성취를 기원합니다!

매사추세츠주 앤도버, 2003년 11월 19일

커머스 그룹, Inc. (NYSE: CGI)는 매사추세츠 최대 개인 승용차 보험 발행사이자 CGI Group Inc. (CGI)(TSX: GIB.A; NYSE: GIB;)는 오늘 3,500만 달러 규모의 6년 비즈니스 프로세스 아웃소싱(BPO) 계약 갱신에 서명했다고 발표했습니다. CGI는 매사추세츠 개인 승용차 및 상업용 자동차 라인에 대한 전체 정책 처리 서비스를 제공할 뿐만 아니라 CGI의 CollaborativeEdge 기관 인터페이스 도구, 애플리케이션 지원 및 유지 관리, 규제 지원, 시스템 컨설팅 및 문서 관리 서비스를 제공할 것입니다.

Commerce Group의 수석 부사장 겸 CFO인 Gerald Fels는 다음과 같이 말했습니다. "매사추세츠의 선도적인 개인 승용차 공급업체로서 우리의 목표는 대리점과 직원이 최고 수준의 성과를 낼 수 있도록 지원하는 서비스를 제공하는 것입니다. 수년에 걸쳐 우리는 CGI와 강력한 관계를 구축해 왔습니다. 그들의 시스템은 강력하고 정확하며 그들의 팀은 내부 처리 시스템에 매우 익숙합니다. 그것은 우리에게 중요합니다."

CGI의 보험 비즈니스 서비스 사장인 Serge LaPalme은 다음과 같이 덧붙였습니다. "30년 이상 이어온 Commerce Group과의 관계를 계속하게 되어 매우 기쁩니다. Commerce Group은 계속해서 우리의 소중한 비즈니스 파트너 중 하나이며 전략적으로 우리의 성공. 고객이 핵심 비즈니스에 더욱 집중할 수 있도록 돕기 위해 우리는 적절한 시기와 장소에서 새로운 기술을 활용하고 있습니다. 우리 팀은 보험 산업과 주의 매우 독특한 규제 환경을 잘 알고 있으며 결과적으로 신속하게 끊임없이 진화하는 이 분야에 기존 솔루션을 적용하는 것입니다."

커머스 그룹(The Commerce Group, Inc.) 소개

보험 지주 회사인 Commerce Group, Inc.는 매사추세츠주 웹스터에 본사를 두고 있습니다. Commerce Group의 손해 보험 자회사로는 매사추세츠의 The Commerce Insurance Company 및 Citation Insurance Company, 캘리포니아의 Commerce West Insurance Company 및 오하이오의 American Commerce Insurance Company가 있습니다. 자회사의 통합 보험 활동을 통해 Commerce Group은 22위에 랭크되었습니다. A.M.은 미국 최대의 개인 자동차 보험 그룹입니다. 최고, 2002년 직접 작성된 프리미엄 정보를 기반으로 합니다.

CGI 소개
1976년에 설립된 CGI는 직원 수 기준으로 북미에서 5번째로 큰 독립 정보 기술 서비스 회사입니다. CGI와 그 계열사는 20,000명의 전문가를 고용하고 있습니다. CGI의 연간 수익 실행율은 현재 CDN$28억(US$19억)이며, 2003년 9월 30일 CGI의 수주 잔고는 CDN$123억(US$91억)입니다. CGI는 캐나다, 미국 및 유럽의 사무실에서 전 세계 고객에게 엔드투엔드 IT 및 비즈니스 프로세스 서비스를 제공합니다. CGI의 주식은 TSX(GIB.A) 및 NYSE(GIB)에 상장되어 있으며 TSX 100 종합 지수, S&P/TSX Canadian Information Technology 및 Canadian MidCap 지수에 포함되어 있습니다.

2012년: 영국 Logica 인수

2012년 6월, CGI 그룹은 유럽 최대 시스템 통합업체인 Logica를 인수하기로 계약을 체결했다고 발표했습니다. 거래 금액은 28억 캐나다 달러(27억 달러)이다. 합의에 따라 CGI는 5억 1,500만 캐나다 달러에 해당하는 Logica의 부채를 상환할 의무도 맡기로 합의했습니다.

CGI는 이번 거래 자금 조달을 위해 4,670만주를 추가 발행해 10억캐나다달러를 조달하고, 캐나다 임페리얼상업은행(Canadian Imperial Bank of Commerce), 캐나다국립은행(National Bank of Canada), 토론토도미니언은행(Toronto-Dominion Bank)으로부터 20억캐나다달러, 약 6억5천만캐나다달러를 차입할 계획이다. 달러 이상 달러 - 현재 신용 한도 내에서.

제안된 주당 가격은 2012년 5월 30일 Logica의 종가보다 59.8% 높았습니다. 이번 거래는 Logica의 해당 연도 EBITDA(이자, 세금, 감가상각비 및 상각비 차감 전 수익)의 약 6.6배에 해당합니다. 2011년 12월 31일 종료된 12개월 기간

Logica 인수로 CGI의 주당 수익은 인수 및 통합 비용을 제외하고 25%~30% 증가할 것으로 예상됩니다. 합병의 결과로 회사의 인력과 연간 수익은 CGI의 두 배 이상이 될 것입니다. 통합된 회사의 직원 규모는 43개국 사무실에 약 72,000명의 직원이 있으며, 연간 수익은 약 104억 캐나다 달러(96억 달러)에 달할 것입니다.

새로운 회사는 세계 IT 컨설턴트 중 6번째로 큰 회사가 될 것입니다. 로이터의 추정에 따르면 이들 중 가장 큰 기업은 IBM, Accenture, Cap Gemini, Tata Consultancy 및 Infosys입니다.

CGI 사장 겸 CEO인 마이클 로치(Michael Roach)는 "로지카는 헌신적인 전문가와 신뢰할 수 있는 장기 고객을 보유한 선도적인 비즈니스 및 기술 서비스 회사"라며 "우리는 올바른 일을 하고 있다고 확신한다"고 말했다. 적절한 가격과 적절한 시기에 엔드투엔드 기술 서비스를 제공하는 소수의 최대 규모 독립 공급업체 중 하나로 거듭날 것입니다."

CGI 이사회는 만장일치로 거래를 승인했습니다. 주주 승인을 거쳐 2012년 9월 준공 예정이다. 표준 절차. 회사 통합 과정은 3년 이내에 완료될 예정입니다.

월드 와이드 웹(World Wide Web) 덕분에 거의 모든 사람이 보기 쉽고 널리 퍼질 수 있는 형태로 온라인에서 정보를 제공할 수 있습니다. 당신은 의심할 바 없이 인터넷을 서핑하고 다른 사이트를 보았으며 이제 "HTTP" 및 "HTML"과 같은 무서운 약어가 단순히 "웹"과 "인터넷에서 정보가 표현되는 방식"의 약어라는 것을 알고 있을 것입니다. 당신은 이미 인터넷에 정보를 제공한 경험이 있을 수도 있습니다.

인터넷의 엄청난 인기와 광범위한 발전에서 알 수 있듯이 인터넷은 정보 배포에 이상적인 매체임이 입증되었습니다. 일부 사람들은 인터넷의 유용성에 의문을 제기하고 인터넷의 광범위한 발전과 인기를 주로 침해적인 광고에 기인한다고 생각하지만, 인터넷은 모든 종류의 정보를 제공하는 중요한 매체라는 점은 부인할 수 없습니다. 최신 정보(뉴스, 날씨, 실시간 스포츠 이벤트) 및 참고 자료를 전자적으로 제공할 수 있는 많은 서비스가 있을 뿐만 아니라 상당한 양의 다른 유형의 데이터도 사용할 수 있습니다. 1995년 세금 신고서와 기타 정보를 모두 월드와이드웹(World Wide Web)을 통해 배포했던 IRS는 최근 자사 웹사이트에 대한 팬 메일을 받았다고 인정했습니다. IRS가 팬 메일을 받을 것이라고 누가 생각이나 했을까요? 이는 그의 사이트가 잘 설계되었기 때문이 아니라 수천, 아마도 수백만 명의 사람들에게 정말 유용한 도구임이 입증되었기 때문입니다.

무엇이 웹을 독특하고 매력적인 정보 서비스로 만드는가? 우선, 데이터에 대한 하이퍼미디어 인터페이스를 제공합니다. 컴퓨터의 하드 드라이브를 생각해 보십시오. 일반적으로 데이터는 파일 시스템과 유사하게 선형 방식으로 표현됩니다. 예를 들어 여러 개의 폴더가 있고 각 폴더 안에는 문서나 다른 폴더가 있습니다. 웹은 하이퍼미디어라는 정보를 표현하기 위해 다른 패러다임을 사용합니다. 하이퍼텍스트 인터페이스는 문서와 링크로 구성됩니다. 링크는 다른 문서를 보거나 다른 유형의 정보를 찾기 위해 클릭하는 단어입니다. 웹은 하이퍼텍스트의 개념을 확장하여 그래픽, 사운드, 비디오(따라서 "하이퍼미디어"라는 이름)와 같은 다른 유형의 미디어를 포함합니다. 문서에서 텍스트나 그래픽을 선택하면 선택한 항목에 대한 관련 정보를 다양한 형식으로 볼 수 있습니다.

동료와 함께 데이터를 즉시 사용하려는 학자부터 회사에 대한 정보를 모든 사람과 공유하는 사업가에 이르기까지 거의 모든 사람이 정보를 표시하고 배포하는 이 간단하고 독특한 방법의 혜택을 누릴 수 있습니다. 그러나 정보를 제공하는 것이 매우 중요하기는 하지만 지난 몇 년 동안 많은 사람들은 정보를 받는 것도 똑같이 중요한 과정이라고 느꼈습니다.

웹은 정보를 위한 고유한 하이퍼미디어 인터페이스를 제공하지만 데이터를 배포하는 다른 효과적인 방법도 많이 있습니다. 예를 들어, FTP(파일 전송 프로토콜) 및 Gopher 뉴스그룹과 같은 네트워크 서비스는 World Wide Web이 등장하기 오래 전에 존재했습니다. 전자 메일은 인터넷과 대부분의 다른 네트워크에서 거의 초기부터 통신 및 정보 교환을 위한 주요 매체였습니다. 인터넷이 정보를 배포하는 데 그렇게 인기 있는 방법이 된 이유는 무엇입니까? 인터넷의 멀티미디어 측면은 전례 없는 성공에 크게 기여했지만 인터넷이 가장 효과적이려면 대화형이어야 합니다.

사용자 입력을 받고 정보를 제공하는 기능이 없다면 웹은 완전히 정적인 환경이 될 것입니다. 정보는 작성자가 지정한 형식으로만 제공됩니다. 이는 일반적인 컴퓨팅 기능 중 하나인 대화형 정보를 약화시킵니다. 예를 들어, 사용자에게 책이나 사전을 보듯 여러 문서를 보도록 강요하기보다는 사용자가 관심 있는 주제에 대한 키워드를 식별할 수 있도록 하는 것이 더 나을 것입니다. 사용자는 콘텐츠 제공자가 정의한 엄격한 구조에 의존하지 않고 데이터 표시를 사용자 정의할 수 있습니다.

"웹 서버"라는 용어는 인터넷 브라우저와 통신하는 데 사용되는 물리적 시스템과 소프트웨어를 모두 지칭할 수 있으므로 오해의 소지가 있습니다. 브라우저가 특정 웹 주소를 요청하면 먼저 인터넷을 통해 컴퓨터에 연결하여 웹 서버 소프트웨어에 문서에 대한 요청을 보냅니다. 이 소프트웨어는 지속적으로 실행되며 이러한 요청이 도착할 때까지 기다리고 그에 따라 응답합니다.

서버는 데이터를 보내고 받을 수 있지만 서버 자체의 기능은 제한되어 있습니다. 예를 들어 가장 원시적인 서버는 필요한 파일만 브라우저에 보낼 수 있습니다. 서버는 일반적으로 이것 또는 그 추가 입력으로 무엇을 해야할지 모릅니다. ISP가 서버에 이 추가 정보를 처리하는 방법을 알려주지 않으면 서버는 입력을 무시할 가능성이 높습니다.

서버가 인터넷 브라우저로 파일을 검색하고 보내는 것 외에 다른 작업을 수행할 수 있으려면 서버의 기능을 확장하는 방법을 알아야 합니다. 예를 들어, 웹 서버는 어떤 방식으로든 서버에 해당 기능이 프로그래밍되어 있지 않으면 사용자가 입력한 키워드를 기반으로 데이터베이스를 검색하고 일치하는 여러 문서를 반환할 수 없습니다.

CGI란 무엇입니까?

CGI(Common Gateway Interface)는 서버의 기능을 확장할 수 있는 서버에 대한 인터페이스입니다. CGI를 사용하면 사이트에 액세스하는 사용자와 대화형으로 상호 작용할 수 있습니다. 이론적 수준에서 CGI를 사용하면 서버는 브라우저의 입력을 구문 분석(해석)하고 사용자 입력을 기반으로 정보를 반환할 수 있습니다. ~에 실무 수준,CGI는 프로그래머가 서버와 쉽게 통신하는 프로그램을 작성할 수 있도록 하는 인터페이스입니다.

일반적으로 서버의 기능을 확장하려면 서버를 직접 수정해야 합니다. 이 솔루션은 인터넷 프로토콜 네트워크 프로그래밍의 하위 계층을 이해해야 하기 때문에 바람직하지 않습니다. 이를 위해서는 서버 소스 코드를 편집하고 다시 컴파일하거나 각 작업에 대한 사용자 정의 서버를 작성해야 합니다. 서버의 기능을 확장하여 웹-이메일 게이트웨이 역할을 하여 사용자가 브라우저에서 입력한 정보를 가져와서 전송한다고 가정해 보겠습니다. 이메일다른 사용자에게. 서버는 브라우저의 입력을 구문 분석하고 이메일을 통해 다른 사용자에게 전달하고 응답을 네트워크 연결을 통해 브라우저로 다시 전달하는 코드를 삽입해야 합니다.

첫째, 이러한 작업을 수행하려면 서버 코드에 대한 액세스가 필요하지만 항상 가능한 것은 아닙니다.

둘째, 어렵고 광범위한 기술 지식이 필요합니다.

셋째, 이는 특정 서버에만 적용됩니다. 서버를 다른 플랫폼으로 이동해야 하는 경우 해당 플랫폼으로 코드를 포팅하는 데 많은 시간을 소비하거나 실행해야 합니다.

왜 CGI인가?

CGI는 이러한 문제에 대한 이식 가능하고 간단한 솔루션을 제공합니다. CGI 프로토콜은 다음을 정의합니다. 표준 방식프로그램이 웹 서버에 접속하도록 합니다. 특별한 지식이 없어도 웹 서버와 인터페이스하고 통신하는 모든 기계어로 프로그램을 작성할 수 있습니다. 이 프로그램은 CGI 프로토콜을 이해하는 모든 웹 서버에서 작동합니다.

CGI 통신은 표준 입력 및 출력을 사용하여 수행됩니다. 즉, 프로그래밍 언어를 사용하여 데이터를 인쇄하고 읽는 방법을 알면 웹 서버 응용 프로그램을 작성할 수 있습니다. 입력과 출력을 구문 분석하는 것 외에도 CGI 응용 프로그램 프로그래밍은 다른 응용 프로그램 프로그래밍과 거의 동일합니다. 예를 들어, "Hello, World!" 프로그램을 프로그래밍하려면 해당 언어의 인쇄 기능과 CGI 프로그램에 대해 정의된 형식을 사용하여 적절한 메시지를 인쇄합니다.

프로그래밍 언어 선택

CGI는 범용 인터페이스이므로 특정 기계 언어에 국한되지 않습니다. 자주 묻는 중요한 질문은 CGI 프로그래밍에 어떤 프로그래밍 언어를 사용할 수 있습니까? 다음 작업을 수행할 수 있는 모든 언어를 사용할 수 있습니다.

  • 표준 출력으로 인쇄
  • 표준 입력에서 읽기
  • 가변 모드에서 읽기

거의 모든 프로그래밍 언어와 많은 스크립팅 언어는 이 세 가지 작업을 수행하며, 그 중 무엇이든 사용할 수 있습니다.

언어는 번역과 통역의 두 가지 클래스 중 하나에 속합니다. C나 C++와 같은 번역된 언어는 일반적으로 크기가 더 작고 빠릅니다. 반면 Perl이나 Rexx와 같은 번역된 언어는 시작 시 로드하기 위해 대규모 인터프리터가 필요한 경우가 있습니다. 또한, 귀하의 언어가 번역 가능하다면 소스 코드 없이 바이너리 코드(기계어로 번역되는 코드)를 배포할 수 있습니다. 해석 가능한 스크립트를 배포한다는 것은 일반적으로 소스 코드를 배포한다는 의미입니다.

언어를 선택하기 전에 먼저 우선순위를 고려해야 합니다. 한 프로그래밍 언어의 속도와 효율성의 이점을 다른 프로그래밍 언어의 용이성과 비교하여 평가해야 합니다. 이미 알고 있는 언어를 사용하는 대신 다른 언어를 배우고 싶다면 두 언어의 장점과 단점을 주의 깊게 살펴보세요.

CGI 프로그래밍에 가장 일반적으로 사용되는 두 가지 언어는 C와 Perl입니다(둘 다 이 책에서 다룹니다). 둘 다 분명한 장점과 단점이 있습니다. Perl은 매우 높은 수준의 언어인 동시에 강력한 언어이며 특히 텍스트 구문 분석에 적합합니다. 사용하기 쉽고 유연하며 성능이 뛰어나 CGI 프로그래밍에 매력적인 언어이지만 상대적으로 크기가 크고 작동 속도가 느려 일부 응용 프로그램에는 적합하지 않은 경우도 있습니다. C 프로그램은 더 작고 효율적이며 낮은 수준의 시스템 제어를 제공하지만 프로그래밍이 더 복잡하고 가벼운 내장 텍스트 처리 루틴이 없으며 디버그하기가 더 어렵습니다.

CGI 프로그래밍에 가장 적합한 언어는 무엇입니까? 프로그래밍 관점에서 더 편리하다고 생각하는 것입니다. 둘 다 CGI 응용 프로그램 프로그래밍에 똑같이 효과적이며 적절한 라이브러리를 사용하면 둘 다 비슷한 기능을 갖습니다. 그러나 서버에 접근하기 어려운 경우에는 더 작고 번역된 C 프로그램을 사용할 수 있으며, 많은 텍스트 처리 작업이 필요한 응용 프로그램을 빠르게 작성해야 하는 경우 대신 Perl을 사용할 수 있습니다.

주의사항

CGI 응용 프로그램에 대한 몇 가지 중요한 대안이 있습니다. 이제 많은 서버에 API 프로그래밍이 포함되어 있어 독립형 CGI 응용 프로그램과 달리 직접 서버 확장을 더 쉽게 프로그래밍할 수 있습니다. API 서버는 일반적으로 CGI 프로그램보다 더 효율적입니다. 다른 서버에는 데이터베이스 연결과 같은 CGI가 아닌 특별한 요소를 처리할 수 있는 내장 기능이 포함되어 있습니다. 마지막으로 일부 애플리케이션은 Java와 같은 새로운 클라이언트측(서버측이 아닌) 기술로 처리될 수 있습니다. 기술의 급속한 변화로 인해 CGI는 빠르게 쓸모없게 될까요?

거의 ~ 아니다. CGI는 최신 기술에 비해 몇 가지 장점이 있습니다.

  • 다재다능하고 휴대가 간편합니다. 모든 플랫폼에서 거의 모든 프로그래밍 언어를 사용하여 CGI 애플리케이션을 작성할 수 있습니다. 서버 API와 같은 일부 대안은 특정 언어로 제한하고 배우기가 훨씬 더 어렵습니다.
  • 서버측 애플리케이션이 실행하기에 훨씬 더 적합한 일부 애플리케이션이 있기 때문에 Java와 같은 클라이언트측 기술이 CGI를 대체할 가능성은 거의 없습니다.
  • CGI의 많은 한계는 HTML이나 HTTP의 한계입니다. 인터넷 표준 전체가 발전함에 따라 CGI 기능도 발전하고 있습니다.

요약

공통 게이트웨이 인터페이스는 프로그램이 웹 서버와 상호 작용하는 프로토콜입니다. CGI의 다용성은 프로그래머에게 거의 모든 언어로 게이트웨이 프로그램을 작성할 수 있는 능력을 제공하지만, 다양한 언어와 관련된 많은 절충안이 있습니다. 이 기능이 없으면 대화형 웹 페이지를 만드는 것이 어렵고 기껏해야 서버 수정이 필요할 뿐 아니라 사이트 관리자가 아닌 대부분의 사용자는 대화형 기능을 사용할 수 없게 됩니다.

2장: 기본 사항

몇 년 전, 나는 사람들이 하버드 대학에 대한 의견을 제출할 수 있는 페이지를 하버드 대학에 만들었습니다. 당시에는 인터넷이 아직 초기 단계였고 문서가 부족했습니다. 다른 많은 사람들과 마찬가지로 나도 CGI 프로그래밍을 배우기 위해 다른 사람들이 만든 짧은 문서와 프로그래밍 시스템에 의존했습니다. 이 연구 방법에는 약간의 검색과 실험이 필요하고 많은 질문이 발생했지만 매우 효과적이었습니다. 이 장은 CGI에 대한 나의 초기 작업의 결과입니다(물론 약간의 수정이 가해졌습니다).

공통 게이트웨이 인터페이스를 완전히 이해하고 익히는 데는 시간이 좀 걸리지만 프로토콜 자체는 매우 간단합니다. 몇 가지 기본적인 프로그래밍 기술을 갖고 있고 웹에 익숙한 사람이라면 누구나 몇 년 전에 나와 다른 사람들이 배운 것처럼 상당히 복잡한 CGI 응용 프로그램 프로그래밍 방법을 빨리 배울 수 있습니다.

이 장의 목적은 비록 압축되었지만 포괄적인 방식으로 CGI의 기본을 제시하는 것입니다. 여기에서 논의된 각 개념은 다음 장에서 자세히 설명됩니다. 그러나 이 장을 마친 후에는 즉시 CGI 응용 프로그램 프로그래밍을 시작할 수 있습니다. 이 수준에 도달하면 이 책의 나머지 부분을 읽거나 직접 실험하여 CGI의 복잡성을 배울 수 있습니다.

CGI 프로그래밍을 두 가지 작업으로 요약할 수 있습니다. 웹 브라우저에서 정보를 받는 것과 정보를 다시 브라우저로 보내는 것입니다. CGI 응용 프로그램의 일반적인 사용에 익숙해지면 이 작업은 매우 직관적으로 수행됩니다. 종종 사용자는 자신의 이름을 입력하는 등의 양식을 작성하라는 요청을 받습니다. 사용자가 양식을 작성하고 Enter 키를 누르면 이 정보가 CGI 프로그램으로 전송됩니다. 그런 다음 CGI 프로그램은 이 정보를 이해하는 것으로 변환하고 그에 따라 처리한 다음 간단한 확인이든 다목적 데이터베이스 검색 결과이든 브라우저로 다시 보내야 합니다.

즉, CGI를 프로그래밍하려면 인터넷 브라우저에서 입력을 받는 방법과 출력을 다시 보내는 방법을 이해해야 합니다. CGI 프로그램의 입력 단계와 출력 단계 사이에서 일어나는 일은 개발자의 목표에 따라 다릅니다. CGI 프로그래밍의 가장 큰 어려움은 이 중간 단계에 있다는 것을 알게 될 것입니다. 입력 및 출력 작업 방법을 배우면 기본적으로 CGI 개발자가 되기에 충분합니다.

이 장에서는 CGI 입력 및 출력의 기본 원리는 물론 HTML 양식 작성 및 CGI 프로그램 이름 지정과 같은 CGI를 작성하고 사용하는 데 필요한 기타 기본 기술도 배웁니다. 이 장에서는 다음 주제를 다룹니다.

  • 전통 프로그램 "Hello, World!";
  • CGI 출력: 인터넷 브라우저에 표시하기 위해 정보를 다시 보냅니다.
  • 애플리케이션을 구성, 설치 및 실행합니다. 다양한 웹 플랫폼과 서버에 대해 배우게 됩니다.
  • CGI 입력: 웹 브라우저에서 보낸 정보를 해석합니다. 이러한 입력을 구문 분석하는 데 유용한 프로그래밍 라이브러리를 소개합니다.
  • 간단한 예: 특정 장의 모든 강의를 다룹니다.
  • 프로그래밍 전략.

이 장의 특성상 일부 주제만 가볍게 다루겠습니다. 괜찮아요; 이러한 모든 주제는 다른 장에서 훨씬 더 깊이 다루어집니다.

안녕하세요, 월드!

전통적인 입문 프로그래밍 문제부터 시작합니다. "Hello, World!"를 표시하는 프로그램을 작성하겠습니다. 귀하의 웹 브라우저에서. 이 프로그램을 작성하기 전에 웹 브라우저가 CGI 프로그램으로부터 수신할 것으로 예상하는 정보가 무엇인지 이해해야 합니다. 또한 이 프로그램을 실행하는 방법을 알아야 프로그램이 실제로 작동하는 모습을 볼 수 있습니다.

CGI는 언어 독립적이므로 어떤 언어로든 이 프로그램을 구현할 수 있습니다. 여기에서는 각 언어의 독립성을 보여주기 위해 여러 가지 언어가 사용되었습니다. Perl에서는 "Hello, World!" 프로그램을 사용합니다. 목록 2.1에 나와 있습니다.

목록 2.1. 안녕하세요, 월드! 펄에서. #!/usr/local/bin/perl # Hello.cgi - 내 첫 번째 CGI 프로그램은 "Content-Type: text/html\n\n"을 인쇄합니다. 인쇄하다 " \n"; 인쇄 " 안녕하세요, 월드!"; 인쇄하다 "\n"; 인쇄 " \n"; 인쇄 "

안녕하세요, 월드!

\n"; 인쇄 "

\N";

이 프로그램을 hello.cgi로 저장하고 적절한 위치에 설치하십시오. (위치가 확실하지 않더라도 걱정하지 마십시오. 이 장 뒷부분의 "CGI 프로그램 설치 및 실행" 섹션에서 알 수 있습니다.) 대부분의 서버에 필요한 디렉토리는 cgi-bin입니다. . 이제 웹 브라우저에서 프로그램을 호출하십시오. 대부분의 경우 이는 다음 URL(Uniform Resource Locator)을 여는 것을 의미합니다.

http://호스트 이름/디렉토리 이름/hello.cgi

호스트 이름은 웹 서버의 이름이고 디렉토리 이름은 hello.cgi(아마도 cgi-bin)를 저장하는 디렉토리입니다.

hello.cgi 분할

hello.cgi에 대해 주의할 점이 몇 가지 있습니다.

먼저 간단한 인쇄 명령을 사용합니다. CGI 프로그램에는 특별한 파일 설명자나 출력 설명자가 필요하지 않습니다. 출력을 브라우저로 보내려면 간단히 stdout으로 인쇄하면 됩니다.

둘째, 첫 번째 print 문의 내용(Content-Type: text/html)은 웹 브라우저에 나타나지 않습니다. 원하는 정보(HTML 페이지, 그래픽 또는 사운드)를 브라우저로 다시 보낼 수 있지만 먼저 어떤 종류의 데이터를 보낼지 브라우저에 알려주어야 합니다. 이 줄은 어떤 종류의 정보를 예상할지 브라우저에 알려줍니다. 이 경우에는 HTML 페이지입니다.

셋째, 프로그램 이름은 hello.cgi입니다. CGI 프로그램 이름에 항상 .cgi 확장자를 사용할 필요는 없습니다. 하지만 원천많은 언어의 경우 .cgi 확장자를 사용합니다. 이는 언어 유형을 나타내는 데 사용되지 않지만 서버가 파일을 다음과 같이 식별하는 방법입니다. 실행 가능 파일, 그래픽 파일, HTML 파일 또는 텍스트 파일. 서버는 종종 이 확장자를 가진 파일만 실행하고 다른 모든 파일의 내용을 표시하도록 구성됩니다. .cgi 확장자를 반드시 사용해야 하는 것은 아니지만 여전히 좋은 습관으로 간주됩니다.

일반적으로 hello.cgi는 두 가지 주요 부분으로 구성됩니다.

  • 브라우저에 예상되는 정보를 알려줍니다(Content-Type: text/html).
  • 브라우저에 무엇을 표시할지 알려줍니다(Hello, World!)

안녕하세요, 월드! C에서

CGI 프로그램의 언어 독립성을 보여주기 위해 목록 2.2는 C로 작성된 hello.cgi 프로그램과 동등한 것을 보여줍니다.

목록 2.2. 안녕하세요, 월드! in C. /* hello.cgi.c - Hello, World CGI */ #include int main() ( printf("콘텐츠 유형: text/html\r\n\r\n"); printf(" \n"); printf(" 안녕하세요, 월드!\n"); printf("\n"); printf(" \n"); printf("

안녕하세요, 월드!

\n"); printf("

\N"); )

메모

hello.cgi의 Perl 버전은 Content-Type print ": text/html\n\n "을 사용합니다. 버전 C는 Printf("Content-Type: text/html\r\n\r\n");

왜 Perl은 두 개의 줄 바꿈(\n)으로 연산자 끝을 인쇄하는 반면 C printf는 두 개의 캐리지 리턴과 줄 바꿈(\r\n)으로 끝나나요?

기술적으로 헤더(빈 줄 앞의 모든 출력)는 캐리지 리턴과 줄 바꿈으로 구분되어야 합니다. 불행하게도 DOS와 Windows 시스템에서 Perl은 \r을 캐리지 리턴이 아닌 다른 개행 문자로 변환합니다.

Perl의 예외는 기술적으로 올바르지 않지만 거의 모든 프로토콜에서 작동하며 모든 플랫폼에서 동일하게 이식 가능합니다. 따라서 이 책의 모든 Perl 예제에서는 캐리지 리턴과 줄바꿈 대신 헤더를 구분하는 줄바꿈을 사용합니다.

이 문제에 대한 적절한 해결책은 4장 결론에서 제시됩니다.

웹 서버나 브라우저는 프로그램을 작성하는 데 어떤 언어가 사용되는지 신경 쓰지 않습니다. CGI 프로그래밍 언어로서 각 언어에는 장단점이 있지만 작업하기 가장 편한 언어를 사용하는 것이 가장 좋습니다. (프로그래밍 언어 선택에 대해서는 1장 "공통 게이트웨이 인터페이스(CGI)"에서 자세히 설명합니다.)

CGI 렌더링

이제 웹 브라우저로 정보를 보내는 문제를 자세히 살펴볼 수 있습니다. "Hello, World!" 예제에서 웹 브라우저는 두 가지 데이터 세트, 즉 표시할 정보(예: Content-Type: 행)와 같은 정보가 포함된 헤더와 실제 정보(웹 브라우저가 표시할 정보)를 기대한다는 것을 알 수 있습니다. 표시). 이 두 정보는 빈 줄로 구분됩니다.

헤더를 HTTP 헤더라고 합니다. 이는 브라우저가 수신하게 될 정보에 대한 중요한 정보를 제공합니다. 여러 가지가 있습니다 다양한 방식 HTTP 헤더이며 가장 보편적인 헤더는 이전에 사용했던 Content-Type: 헤더입니다. 캐리지 리턴과 줄 바꿈(\r\n)으로 구분된 다양한 HTTP 헤더 조합을 사용할 수 있습니다. 헤더와 데이터를 구분하는 빈 줄도 캐리지 리턴과 개행 문자로 구성됩니다. 두 가지가 모두 필요한 이유는 이전 참고에서 간략하게 설명하고 4장에서 자세히 설명합니다. 4장에서 다른 HTTP 헤더에 대해 배우게 됩니다. 현재 Content-Type: 헤더를 다루고 있습니다.

Content-Type: 헤더는 CGI가 반환하는 데이터 유형을 설명합니다. 이 헤더에 적합한 형식은 다음과 같습니다.

콘텐츠 유형: 하위 유형/유형

여기서 하위 유형/유형은 올바른 MIME(Multi Purpose Internet Mail Extensions) 유형입니다. 가장 일반적인 MIME 유형은 HTML 유형(text/html)입니다. 표 2.1에는 논의할 몇 가지 일반적인 MIME 유형이 나열되어 있습니다. MIME 유형에 대한 보다 완전한 목록과 분석은 4장에서 제공됩니다.

메모

MIME은 원래 메일 메시지 본문의 내용을 설명하기 위해 고안되었습니다. 이는 Content-Type 정보를 표현하는 매우 일반적인 방법이 되었습니다. RFC1521에서 MIME에 대한 자세한 내용을 읽을 수 있습니다. 인터넷의 RFC는 의견 요청(Requests for Comments)을 의미하며, 표준을 설정하기 위해 인터넷 그룹이 내린 결정을 요약한 것입니다. 다음 주소에서 RFC1521의 결과를 볼 수 있습니다: http://andrew2.andrew.cmu.edu/rfc/rfc1521.html

표 2.1. 몇 가지 일반적인 MIME 유형. MIME 유형 설명 Text/html 하이퍼텍스트 마크업 언어(HTML) Text/plain 일반 텍스트 파일 Image/gif 그래픽 파일 GIF Image/jpeg 압축 그래픽 파일 JPEG 오디오/기본 오디오 - Sun *.au 오디오/x-wav 파일 Windows *.wav 파일

헤더와 빈 줄 뒤에는 필요한 형식으로 데이터를 인쇄하기만 하면 됩니다. HTML을 보내는 경우 인쇄하십시오. HTML 태그헤더 다음에 stdout으로 데이터를 보냅니다. 파일 내용을 표준 출력으로 간단히 인쇄하여 그래픽, 사운드 및 기타 바이너리 파일을 보낼 수도 있습니다. 이에 대한 몇 가지 예가 4장에 나와 있습니다.

CGI 프로그램 설치 및 실행

이 섹션에서는 CGI 프로그래밍에서 다소 벗어나 CGI를 사용하도록 웹 서버를 구성하고 프로그램을 설치 및 실행하는 방법에 대해 설명합니다. 다양한 플랫폼에 대한 다양한 서버에 대해 다소 자세하게 소개되지만 최상의 옵션을 찾으려면 서버 설명서를 더 깊이 파헤쳐야 합니다.

모든 서버에는 서버 파일을 위한 공간과 HTML 문서. 이 책에서는 서버 영역을 ServerRoot, 문서 영역을 DocumentRoot라고 합니다. UNIX 시스템에서 ServerRoot는 일반적으로 /usr/local/etc/httpd/에 있고 DocumentRoot는 일반적으로 /usr/local/etc/httpd/htdocs/에 있습니다. 그러나 이는 시스템에 아무런 변화를 주지 않으므로 ServerRoot 및 DocumentRoot에 대한 모든 참조를 사용자 고유의 ServerRoot 및 DocumentRoot로 바꾸십시오.

웹 브라우저를 사용하여 파일에 액세스할 때 DocumentRoot에 상대적인 URL에 파일을 지정합니다. 예를 들어, 서버 주소가 mymachine.org인 경우 다음 URL을 사용하여 이 파일에 액세스합니다: http://mymachine.org/index.html

CGI용 서버 구성

대부분의 웹 서버는 CGI 프로그램을 사용할 수 있도록 사전 구성되어 있습니다. 일반적으로 두 개의 매개 변수는 파일이 CGI 응용 프로그램인지 여부를 서버에 나타냅니다.

  • 지정된 디렉토리. 일부 서버에서는 지정된 디렉터리(일반적으로 기본적으로 cgi-bin이라고 함)에 있는 모든 파일이 CGI인지 확인할 수 있습니다.
  • 파일 이름 확장자. 많은 서버에는 .cgi로 끝나는 모든 파일을 CGI로 정의할 수 있도록 하는 사전 구성이 있습니다.

지정된 디렉터리 방법은 과거의 유물이지만(최초의 서버에서는 어떤 파일이 CGI 프로그램인지 확인하는 유일한 방법으로 사용했습니다) 몇 가지 장점이 있습니다.

  • CGI 프로그램을 중앙 집중화하여 다른 디렉토리가 복잡해지는 것을 방지합니다.
  • 특정 파일 이름 확장자에 제한이 없으므로 원하는 대로 파일 이름을 지정할 수 있습니다. 일부 서버에서는 여러 다른 디렉터리를 CGI 디렉터리로 지정할 수 있습니다.
  • 또한 CGI를 녹음할 수 있는 사람을 더 효과적으로 제어할 수 있습니다. 예를 들어, 서버가 있고 여러 사용자가 있는 시스템을 지원하고 보안상의 이유로 프로그램을 먼저 검토하지 않고 자신의 CGI 스크립트를 사용하는 것을 원하지 않는 경우 제한된 중앙 집중식 디렉토리에 있는 해당 파일만 CGI로 지정할 수 있습니다. . 그런 다음 사용자는 설치할 CGI 프로그램을 제공해야 하며 먼저 코드를 감사하여 프로그램에 주요 보안 문제가 없는지 확인할 수 있습니다.

파일 이름 확장자를 통한 CGI 표기법은 유연성으로 인해 유용할 수 있습니다. CGI 프로그램에 대해 하나의 단일 디렉토리로 제한되지 않습니다. 대부분의 서버는 파일 이름 확장자를 통해 CGI를 인식하도록 구성할 수 있지만 기본적으로 모든 서버가 이 방식으로 구성되는 것은 아닙니다.

경고

CGI용 서버를 구성할 때 보안 문제의 중요성을 기억하십시오. 몇 가지 팁은 여기서 다루며, 9장 CGI 보호에서는 이러한 측면을 더 자세히 다룹니다.

UNIX 서버에 CGI 설치

UNIX 서버 구성 방법에 관계없이 CGI 응용 프로그램이 예상대로 실행되도록 하려면 몇 가지 단계를 수행해야 합니다. 웹 서버는 일반적으로 존재하지 않는 사용자(즉, UNIX 사용자 none -)로 실행됩니다. 계정, 해당 파일에 대한 접근 권한이 없어 등록할 수 없습니다). CGI 스크립트(Perl, Bourne 쉘 또는 다른 스크립트 언어로 작성됨)는 전 세계에서 실행 가능하고 읽을 수 있어야 합니다.

단서

파일을 누구나 읽을 수 있고 실행 가능하게 만들려면 다음 UNIX 권한 명령을 사용하십시오: chmod 755 filename.

Perl 또는 Tcl과 같은 스크립트 언어를 사용하는 경우 스크립트의 첫 번째 줄에 인터프리터의 전체 경로를 제공하십시오. 예를 들어, /usr/local/bin 디렉토리에서 perl을 사용하는 Perl 스크립트는 다음 줄로 시작됩니다.

#!/usr/local/bin/perl

경고

인터프리터(perl 또는 Tcl Wish 바이너리)를 /cgi-bin 디렉토리에 절대 두지 마십시오. 이렇게 하면 시스템에 보안 위험이 발생합니다. 이에 대해서는 9장에서 자세히 설명합니다.

일부 일반 UNIX 서버

NCSA와 Apache 서버는 Apache 서버가 원래 NCSA 코드를 기반으로 했기 때문에 비슷한 구성 파일을 가지고 있습니다. 기본적으로 cgi-bin 디렉터리(기본적으로 ServerRoot에 있음)의 모든 파일이 CGI 프로그램이 되도록 구성됩니다. cgi-bin 디렉토리의 위치를 ​​변경하려면 conf/srm.conf 구성 파일을 편집하면 됩니다. 이 디렉터리를 구성하는 형식은 다음과 같습니다.

ScriptAlias ​​가짜 디렉터리 이름 실제 디렉터리 이름

여기서 fakedirectoryname은 의사 디렉터리 이름(/cgi-bin)이고 realdirectoryname은 CGI 프로그램이 실제로 저장되는 전체 경로입니다. ScriptAlias ​​행을 더 추가하여 둘 이상의 ScriptAlias를 구성할 수 있습니다.

기본 구성은 대부분의 사용자 요구에 충분합니다. 두 경우 모두 올바른 실제 디렉터리 이름을 확인하려면 srm.conf 파일의 줄을 편집해야 합니다. 예를 들어 CGI 프로그램이 /usr/local/etc/httpd/cgi-bin에 있는 경우 srm.conf 파일의 ScriptAlias ​​​라인은 다음과 같아야 합니다.

ScriptAlias ​​​​/cgi-bin/ /usr/local/etc/httpd/cgi-bin/

이 디렉토리에 있는 CGI 프로그램에 액세스하거나 연결하려면 다음 URL을 사용하십시오.

http://호스트 이름/cgi-bin/프로그램 이름

여기서 호스트 이름은 웹 서버의 호스트 이름이고 프로그램 이름은 CGI의 이름입니다.

예를 들어 hello.cgi 프로그램을 www.company.com이라는 웹 서버의 cgi-bin 디렉토리(예: /usr/local/etc/httpd/cgi-bin)에 복사한다고 가정해 보겠습니다. CGI에 액세스하려면 다음 URL을 사용하십시오: http://www.company.com/cgi-bin/hello.cgi

.cgi 확장자를 가진 모든 파일을 CGI로 인식하도록 NCSA 또는 Apache 서버를 구성하려면 두 개의 구성 파일을 편집해야 합니다. 먼저 srm.conf 파일에서 다음 줄의 주석 처리를 제거합니다.

AddType 애플리케이션/x-httpd-cgi .cgi

그러면 MIME 유형 CGI가 .cgi 확장자와 연결됩니다. 이제 어떤 디렉터리에서든 CGI를 실행할 수 있도록 access.conf 파일을 변경해야 합니다. 이렇게 하려면 옵션 줄에 ExecCGI 옵션을 추가합니다. 다음 줄과 같이 표시됩니다.

옵션 인덱스 FollowSymLinks ExecCGI

이제 확장자가 .cgi인 모든 파일은 CGI로 간주됩니다. 서버에 있는 파일과 마찬가지로 액세스할 수 있습니다.

CERN 서버는 Apache 및 NCSA 서버와 동일한 방식으로 구성됩니다. ScriptAlias ​​대신 CERN 서버는 Exec 명령을 사용합니다. 예를 들어 httpd.conf 파일에는 다음 줄이 표시됩니다.

실행 /cgi-bin/* /usr/local/etc/httpd/cgi-bin/*

다른 UNIX 서버도 동일한 방식으로 구성할 수 있습니다. 이에 대한 자세한 내용은 서버 설명서에 설명되어 있습니다.

Windows에 CGI 설치

Windows 3.1, Windows 95 및 Windows NT에서 사용할 수 있는 대부분의 서버는 CGI 인식을 위해 "파일 이름 확장자" 방법을 사용하여 구성됩니다. 일반적으로 Windows 기반 서버의 구성을 변경하려면 서버 구성 프로그램을 실행하고 적절하게 변경하면 됩니다.

때로는 Perl과 같은 스크립트를 올바르게 실행하도록 서버를 구성하는 것이 어려울 수 있습니다. DOS나 Windows에서는 UNIX의 경우처럼 스크립트의 첫 번째 줄에 인터프리터를 지정할 수 없습니다. 일부 서버에는 특정 파일 이름 확장자를 인터프리터와 연결하기 위한 사전 정의된 구성이 있습니다. 예를 들어, 많은 Windows 웹 서버에서는 .pl로 끝나는 파일이 Perl 스크립트라고 가정합니다.

서버가 이러한 유형의 파일 연결을 수행하지 않는 경우 인터프리터와 스크립트를 모두 호출하는 패키저 배치 파일을 정의할 수 있습니다. UNIX 서버와 마찬가지로 cgi-bin 디렉토리나 웹 액세스 가능 디렉토리에 인터프리터를 설치하지 마십시오.

매킨토시에 CGI 설치하기

Macintosh용으로 가장 잘 알려진 두 가지 서버 옵션은 WebStar StarNine과 그 전신인 MacHTTP입니다. 둘 다 파일 이름 확장자로 CGI를 인식합니다.

MacHTTP는 비동기 CGI를 의미하는 .cgi와 .acgi라는 두 가지 확장자를 이해합니다. Macintosh에 설치된 일반 CGI 프로그램(확장자 .cgi)은 CGI 실행이 완료될 때까지 웹 서버를 바쁜 상태로 유지하므로 서버가 다른 모든 요청을 일시 중단하게 됩니다. 반면에 비동기 CGI를 사용하면 서버가 실행 중인 동안에도 요청을 수락할 수 있습니다.

이러한 웹 서버를 사용하는 CGI Macintosh 개발자는 가능하면 .cgi 확장자가 아닌 .acgi 확장자를 사용해야 합니다. 대부분의 CGI 프로그램에서 작동합니다. 작동하지 않으면 프로그램 이름을 .cgi로 바꾸십시오.

CGI 실행

CGI를 설치한 후에는 여러 가지 방법으로 실행할 수 있습니다. CGI 프로그램이 Hello,World!와 같은 출력 전용 프로그램인 경우 해당 URL에 액세스하여 간단히 실행할 수 있습니다.

대부분의 프로그램은 HTML 양식에서 서버 응용 프로그램으로 실행됩니다. 이러한 양식에서 정보를 얻는 방법을 배우기 전에 먼저 해당 양식 작성에 대한 간단한 소개를 읽으십시오.

HTML 양식에 대한 빠른 튜토리얼

HTML 양식에서 가장 중요한 두 가지 태그는

그리고 . 이 두 태그만 사용하여 대부분의 HTML 양식을 만들 수 있습니다. 이 장에서는 이러한 태그와 가능한 유형 또는 속성의 작은 하위 집합을 살펴보겠습니다. . 전체 가이드 및 링크 HTML 양식 3장 HTML 및 양식에 나와 있습니다.

꼬리표

꼬리표 사용자가 입력한 정보에 사용해야 하는 HTML 파일의 부분을 결정하는 데 사용됩니다. 이는 대부분의 HTML 페이지가 CGI 프로그램을 호출하는 방식을 나타냅니다. 태그 속성은 프로그램의 이름과 위치(로컬 또는 전체 URL), 사용된 인코딩 유형, 프로그램에서 사용하는 데이터 이동 방법을 지정합니다.

다음 줄에는 태그 사양이 표시됩니다. :

< ACTION FORM = "url" METHOD = ENCTYPE = "..." >

ENCTYPE 속성은 특별한 역할을 하지 않으며 일반적으로 태그에 포함되지 않습니다. . ENCTYPE 태그에 관한 자세한 정보는 3장에 나와 있습니다. ENCTYPE을 사용하는 한 가지 방법은 14장 "브랜드 확장"에 나와 있습니다.

ACTION 속성은 CGI 프로그램의 URL을 나타냅니다. 사용자가 양식을 작성하고 정보를 제공하면 모든 정보가 인코딩되어 CGI 프로그램으로 전송됩니다. CGI 프로그램 자체는 정보 디코딩 및 처리 문제를 해결합니다. 이 측면은 이 장 뒷부분의 "브라우저에서 입력 허용"에서 설명됩니다.

마지막으로 METHOD 속성은 CGI 프로그램이 입력을 받는 방법을 설명합니다. GET과 POST라는 두 가지 방법은 CGI 프로그램에 정보를 전달하는 방법이 다릅니다. 두 가지 모두 "브라우저에서 입력 허용"에서 논의됩니다.

브라우저가 사용자 입력을 허용하려면 모든 양식 태그와 정보를 태그로 묶어야 합니다. . 닫는 태그를 잊지 마세요

양식의 끝을 나타냅니다. 다른 위치에 정보를 표시할 수 있는 양식을 설정할 수는 있지만 양식 내에 양식을 가질 수는 없습니다. 이 측면은 3장에서 광범위하게 논의됩니다.

꼬리표

태그를 사용하여 텍스트 입력 막대, 라디오 버튼, 체크박스 및 기타 입력을 허용하는 수단을 만들 수 있습니다. . 이 섹션에서는 텍스트 입력 필드만 다룹니다. 이 필드를 구현하려면 태그를 사용하세요. 다음 속성을 갖습니다:

< INPUT TYPE=text NAME = "... " VALUE = "... " SIZE = MAXLENGTH = >

NAME은 사용자가 입력한 값이 포함된 변수의 기호 이름입니다. VALUE 속성에 텍스트를 포함하면 해당 텍스트가 텍스트 입력 필드에 기본값으로 배치됩니다. SIZE 속성을 사용하면 브라우저 창에 표시되는 입력 필드의 가로 길이를 지정할 수 있습니다. 마지막으로 MAXLENGTH는 사용자가 필드에 입력할 수 있는 최대 문자 수를 지정합니다. VALUE, SIZE, MAXLENGTH 속성은 선택사항입니다.

양식 제출

양식 내에 텍스트 필드가 하나만 있는 경우 사용자는 키보드에 정보를 입력하고 Enter 키를 눌러 양식을 제출할 수 있습니다. 그렇지 않으면 사용자가 정보를 표시할 수 있는 다른 방법이 있어야 합니다. 사용자는 다음 태그가 포함된 제출 버튼을 사용하여 정보를 제출합니다.

< Input type=submit >

이 태그는 양식 내에 제출 버튼을 생성합니다. 사용자가 양식 작성을 마치면 제출 버튼을 클릭하여 양식의 ACTION 속성에 지정된 URL에 내용을 제출할 수 있습니다.

브라우저에서 입력 수락

위에는 서버에서 브라우저로 정보를 보내는 CGI 프로그램을 녹화한 예입니다. 실제로 데이터만 출력하는 CGI 프로그램은 응용 프로그램이 많지 않습니다(4장에 몇 가지 예가 나와 있습니다). CGI의 더 중요한 기능은 브라우저로부터 정보를 수신하는 것입니다. 이는 웹에 대화형 특성을 부여하는 기능입니다.

CGI 프로그램은 브라우저로부터 두 가지 유형의 정보를 받습니다.

  • 먼저 브라우저(유형, 볼 수 있는 항목, 호스트 호스트 등), 서버(이름 및 버전, 실행 포트 등) 및 CGI 프로그램에 대한 다양한 정보를 얻습니다. 자체(프로그램 이름 및 위치). 서버는 환경 변수를 통해 이 모든 정보를 CGI 프로그램에 제공합니다.
  • 둘째, CGI 프로그램은 사용자 입력을 받을 수 있습니다. 이 정보는 브라우저에서 인코딩된 후 환경 변수(GET 메서드) 또는 표준 입력(stdin - POST 메서드)을 통해 전송됩니다.

환경 변수

훈련 및 디버깅 중에 CGI 프로그램에 사용할 수 있는 환경 변수가 무엇인지 아는 것이 유용합니다. 표 2.2에는 사용 가능한 CGI 환경 변수 중 일부가 나열되어 있습니다. 환경 변수와 해당 값을 웹 브라우저에 출력하는 CGI 프로그램을 작성할 수도 있습니다.

표 2.2. 몇 가지 중요한 CGI 환경 변수 환경 변수 용도 REMOTE_ADDR 클라이언트 시스템의 IP 주소입니다. REMOTE_HOST 클라이언트 시스템의 호스트입니다. HTTP _ACCEPT 브라우저가 해석할 수 있는 MIME 데이터 유형을 나열합니다. HTTP _USER_AGENT 브라우저 정보(브라우저 유형, 버전 번호, 운영 체제 등). REQUEST_METHOD GET 또는 POST. CONTENT_LENGTH POST를 통해 전송된 경우 입력 크기입니다. 입력이 없거나 GET 메소드를 사용하는 경우 이 매개변수는 정의되지 않습니다. QUERY_STRING GET 메소드를 사용하여 전달될 때 입력 정보를 포함합니다. PATH_INFO 사용자가 경로를 지정할 수 있습니다. 명령줄 CGI(예: http://hostname/cgi-bin/programname/path). PATH_TRANSLATED PATH_INFO의 상대 경로를 시스템의 실제 경로로 변환합니다.

환경 변수를 표시하는 CGI 애플리케이션을 작성하려면 다음 두 가지 작업을 수행하는 방법을 알아야 합니다.

  • 모든 환경 변수와 해당 값을 정의합니다.
  • 브라우저에 결과를 인쇄합니다.

당신은 마지막 작업을 수행하는 방법을 이미 알고 있습니다. Perl에서 환경 변수는 연관 배열 %ENV에 저장됩니다. 환경 변수. 목록 2.3에는 목표를 달성하는 Perl 프로그램인 env.cgi가 포함되어 있습니다.

목록 2.3. 모든 CGI 환경 변수를 인쇄하는 Perl 프로그램 env.cgi.

#!/usr/local/bin/perl print "콘텐츠 유형: text/html\n\n"; 인쇄하다 " \n"; 인쇄 " CGI 환경\n"; 인쇄 "\n"; 인쇄 " \n"; 인쇄 "

CGI 환경

\n"; foreach $env_var(키 %ENV)( 인쇄 " $env_var= $ENV($env_var)
\n"; ) 인쇄 "

\N";

유사한 프로그램을 C로 작성할 수 있습니다. 전체 코드는 목록 2.4에 있습니다.

목록 2.4. C의 Env.cgi.c. /* env.cgi.c */ #include 외부 char **환경; int main() ( char **p = Environ; printf("콘텐츠 유형: text/html\r\n\r\n"); printf(" \n"); printf(" CGI 환경\n"); printf("\n"); printf(" \n"); printf("

CGI 환경

\n"); while(*p != NULL) printf("%s
\n",*p++); printf("

\N"); )

GET 또는 POST?

GET 방식과 POST 방식의 차이점은 무엇인가요? GET은 인코딩된 입력 문자열을 QUERY_STRING 환경 변수를 통해 전달하고 POST는 이를 stdin을 통해 전달합니다. POST는 전송되는 정보의 양에 제한이 없는 반면, GET 방법을 사용하면 미디어 공간의 양이 제한되기 때문에 특히 데이터가 많은 양식에 선호되는 방법입니다. 그러나 GET에는 유용한 속성이 있습니다. 이에 대해서는 5장 입력에서 자세히 다룹니다.

어떤 방법이 사용되는지 결정하기 위해 CGI 프로그램은 GET 또는 POST로 설정되는 환경 변수 REQUEST_METHOD를 확인합니다. POST로 설정하면 인코딩된 정보의 길이가 CONTENT_LENGTH 환경 변수에 저장됩니다.

코딩된 입력

사용자가 양식을 제출하면 브라우저는 정보를 서버로 보내기 전에 먼저 정보를 인코딩한 다음 CGI 응용 프로그램으로 보냅니다. 태그를 사용하는 경우 , 각 필드에는 기호 이름이 지정됩니다. 사용자가 입력한 값이 변수의 값으로 표현됩니다.

이를 확인하기 위해 브라우저는 다음과 같이 설명할 수 있는 URL 인코딩 사양을 사용합니다.

  • 서로 다른 필드를 앰퍼샌드(&)로 구분합니다.
  • 이름과 값을 등호(=)로 구분하고 이름은 왼쪽, 값은 오른쪽에 표시합니다.
  • 공백을 더하기 기호(+)로 바꿉니다.
  • 모든 "비정상" 문자를 퍼센트 기호(%) 뒤에 해당 문자에 대한 두 자리 16진수 코드로 바꿉니다.

최종 인코딩된 문자열은 다음과 유사합니다.

이름1=값1&이름2=값2&이름3=값3 ...

참고: URL 인코딩 사양은 RFC1738에 나와 있습니다.

예를 들어 이름과 나이를 묻는 양식이 있다고 가정해 보겠습니다. 이 양식을 표시하는 데 사용된 HTML 코드는 목록 2.5에 나와 있습니다.

목록 2.5. 이름과 나이 형식을 표시하는 HTML 코드입니다.

이름과 나이

당신의 이름을 입력:

나이를 입력하세요:



사용자가 이름 필드에 Joe Schmoe를 입력하고 연령 필드에 20을 입력한다고 가정해 보겠습니다. 입력은 입력 문자열로 인코딩됩니다.

이름=조+슈모&나이=20

입력 구문 분석

이 정보가 유용하려면 CGI 프로그램에서 사용할 수 있는 정보를 사용해야 합니다. 입력 구문 분석 전략은 5장에서 다룹니다. 실제로 여러 전문가가 모든 사람이 액세스할 수 있는 구문 분석을 수행하는 라이브러리를 작성했기 때문에 입력을 구문 분석하는 방법에 대해 생각할 필요가 없습니다. 이 장에서는 Perl용 cgi -lib.pl(Steve Brenner 작성)과 C용 cgihtml(필자 작성)이라는 두 가지 라이브러리를 제시합니다.

다양한 언어로 작성된 대부분의 라이브러리의 일반적인 목표는 인코딩된 문자열을 구문 분석하고 이름과 값 쌍을 데이터 구조에 넣는 것입니다. Perl과 같은 데이터 구조가 내장된 언어를 사용하면 분명한 이점이 있습니다. 그러나 C 및 C++와 같은 저수준 언어용 라이브러리에는 대부분 데이터 구조와 서브루틴 실행이 포함되어 있습니다.

도서관을 완전히 이해할 필요는 없습니다. CGI 프로그래머의 작업을 더 쉽게 만드는 도구로 이를 사용하는 방법을 배우는 것이 더 중요합니다.

Cgi-lib.pl

Cgi-lib.pl은 Perl 연관 배열을 사용합니다. &ReadParse 함수는 입력 문자열을 구문 분석하고 각 이름/값 쌍을 이름별로 입력합니다. 예를 들어 방금 제시된 "이름/나이" 입력 문자열을 디코딩하는 데 필요한 해당 Perl 문자열은 다음과 같습니다.

&ReadParse(*입력);

이제 "name"에 입력된 값을 보려면 연관 배열 $input("name")에 액세스할 수 있습니다. 마찬가지로 "age" 값에 액세스하려면 $input("age") 변수를 확인해야 합니다.

Cgihtml

C에는 내장된 데이터 구조가 없으므로 cgihtml은 CGI 구문 분석 루틴과 함께 사용할 자체 링크 목록을 구현합니다. 이는 다음과 같이 항목 유형 구조를 정의합니다.

Typedef struct ( Char *name; Char *value; ) 항목 유형;

cgihtml을 사용하여 C에서 입력 문자열 "name/age"를 구문 분석하려면 다음이 사용됩니다.

/* 선언하다 연결리스트, 입력이라고 함 */ Llist 입력; /* 연결 리스트의 입력과 위치를 구문 분석합니다. */ read_cgi_input(&input);

연령 정보에 접근하려면 목록을 수동으로 구문 분석하거나 사용 가능한 cgi _val() 함수를 사용할 수 있습니다.

#포함하다 #포함하다 Char *age = malloc(sizeof(char)*strlen(cgi_val(input, "age")) + 1); Strcpy(나이, cgi_val(입력, "나이"));

이제 "age" 값이 age 문자열에 저장됩니다.

참고: 간단한 배열(예: char age ;)을 사용하는 대신 문자열 수명에 대한 메모리 공간을 동적으로 할당합니다. 이로 인해 프로그래밍이 더 어려워지지만 그럼에도 불구하고 보안 관점에서는 중요합니다. 이에 대해서는 9장에서 더 자세히 논의된다.

간단한 CGI 프로그램

이름/나이 형식을 처리하는 nameage.cgi라는 CGI 프로그램을 작성하겠습니다. 데이터 처리(보통 "중간 작업"이라고 부르는 것)는 최소화됩니다. Nameage.cgi는 단순히 입력을 디코딩하고 사용자의 이름과 나이를 표시합니다. 이러한 도구는 많이 사용되지 않지만 CGI 프로그래밍의 가장 중요한 측면인 입력 및 출력을 보여줍니다.

위와 동일한 양식을 사용하여 "이름 및 나이" 필드를 호출합니다. 아직은 견고성과 효율성에 대해 걱정하지 마세요. 가장 간단한 방법으로 기존 문제를 해결하십시오. Perl과 C 솔루션은 각각 목록 2.6과 2.7에 나와 있습니다.

목록 2.6. Perl의 Nameage.cgi

#!/usr/local/bin/perl # nameage.cgi에는 "cgi-lib.pl"이 필요합니다 &ReadParse(*input); "콘텐츠 유형: text/html\r\n\r\n"을 인쇄합니다. 인쇄하다 " \n"; 인쇄 " 이름과 나이\n"; 인쇄 "\n"; 인쇄 " \n"; 인쇄 "안녕하세요, " . $input("name") . ". 당신은\n"; print $input("age") . " 세입니다.

\n"; 인쇄 "

\N";

목록 2.7. C의 nameage.cgi

/* nameage.cgi.c */ #include #include "cgi-lib.h" int main() ( lllist 입력; read_cgi_input(&input); printf("콘텐츠 유형: text/html\r\n\r\n"); printf(" \n"); printf(" 이름과 나이\n"); printf("\n"); printf(" \n"); printf("안녕하세요, %s. 당신은\n",cgi_val(input,"name")); printf("%s살입니다.

\n",cgi_val(입력,"나이")); printf("

\N"); )

이 두 프로그램은 거의 동일합니다. 두 가지 모두 한 줄만 차지하고 전체 입력을 처리하는 구문 분석 루틴을 포함합니다(해당 라이브러리 루틴 덕분에). 출력은 기본적으로 기본 Hello, World! 프로그램의 수정된 버전입니다.

양식을 작성하고 제출 버튼을 클릭하여 프로그램을 실행해 보세요.

일반적인 프로그래밍 전략

이제 CGI 프로그래밍에 필요한 모든 기본 원칙을 알게 되었습니다. CGI가 정보를 수신하는 방법과 정보를 브라우저로 다시 보내는 방법을 이해하고 나면 최종 제품의 실제 품질은 일반적인 프로그래밍 능력에 따라 달라집니다. 즉, CGI(또는 그 문제에 관한 모든 것)를 프로그래밍할 때 다음 특성을 염두에 두십시오.

  • 간단
  • 능률
  • 다재

처음 두 가지 특성은 매우 일반적입니다. 코드를 가능한 한 읽기 쉽고 효율적으로 만드십시오. 다양성은 다른 응용 프로그램보다 CGI 프로그램에 더 많이 적용됩니다. 자신만의 CGI 프로그램 개발을 시작하면 모두가 만들고 싶어하는 몇 가지 기본 응용 프로그램이 있다는 것을 알게 될 것입니다. 예를 들어, CGI 프로그램의 가장 일반적이고 분명한 작업 중 하나는 양식을 처리하고 결과를 특정 수신자에게 이메일로 보내는 것입니다. 각각 다른 수신자를 사용하여 여러 개의 별도 양식을 처리할 수 있습니다. 각 개별 양식에 대해 CGI 프로그램을 작성하는 대신 더 많은 내용을 작성하여 시간을 절약할 수 있습니다. 일반 프로그램모든 형태에 작동하는 CGI입니다.

CGI의 모든 기본 측면을 다루면서 CGI 프로그래밍을 시작하는 데 충분한 정보를 제공했습니다. 그러나 효과적인 CGI 개발자가 되려면 CGI가 서버 및 브라우저와 통신하는 방식을 더 깊이 이해해야 합니다. 이 책의 나머지 부분에서는 이 장에서 간략하게 언급한 문제와 응용 프로그램 개발 전략, 프로토콜의 장점과 한계를 자세히 다루고 있습니다.

요약

이 장에서는 CGI 프로그래밍의 기본을 간략하게 소개했습니다. 데이터의 형식을 올바르게 지정하고 stdout으로 인쇄하여 출력을 생성합니다. CGI 입력을 수신하는 것은 사용하기 전에 구문 분석을 해야 하기 때문에 좀 더 복잡합니다. 다행히도 구문 분석을 수행하는 여러 라이브러리가 이미 존재합니다.

에게 지금이 순간 CGI 응용프로그램 프로그래밍에 상당히 쉽게 익숙해질 수 있어야 합니다. 이 책의 나머지 부분에서는 보다 발전되고 복잡한 애플리케이션에 대한 사양, 팁, 프로그래밍 전략에 대해 자세히 설명합니다.

온라인 상점 소유자는 '전자 상거래'라는 개념을 직접적으로 잘 알고 있으며 '전자 상거래란 무엇입니까?'라는 질문에 대한 답을 이미 알고 있습니다. 하지만 그 밑바닥까지 파고들면 많은 뉘앙스가 드러나고 이 용어는 더 넓은 의미를 갖습니다.

전자상거래: 그게 뭐죠?

일반적인 개념은 다음과 같습니다. 전자 상거래는 비즈니스 수행에 대한 특정 접근 방식으로 이해됩니다. 여기에는 상품 제공 또는 서비스/작업 제공에 디지털 데이터 전송을 사용하는 여러 작업이 포함됩니다. 인터넷.

따라서 이는 전자 통신 수단을 사용하여 수행되는 모든 상업 거래입니다.

작업 계획은 다음과 같이 구성됩니다.

  • 누구든지 블로거가 될 수 있고 자신의 인터넷 페이지의 다른 소유자가 될 수 있습니다.) 이 시스템에 등록합니다.
  • 자체 링크를 얻습니다.
  • 장소 특수 코드귀하의 웹페이지에 - 전자상거래 파트너 네트워크의 선택된 공식 파트너에 대한 광고가 나타납니다.
  • 웹사이트 전환을 모니터링합니다.
  • 제휴사 링크를 따라가는 웹사이트 방문자의 각 구매에 대해 특정 비율을 얻습니다.

WP 전자상거래

이제 많은 사람들이 전자 상거래에 열정을 갖고 있습니다. 이는 주로 자신의 제품을 판매할 수 있는 고유한 온라인 상점인 자신만의 웹사이트를 만들고자 하는 욕구 때문입니다. 이러한 증가하는 수요를 충족하기 위해 개발자는 전자 상거래 템플릿을 만드는 데 중점을 두었습니다. 다음은 무엇인지 살펴보겠습니다.

그러한 템플릿의 예 중 하나가 WordPress 전자상거래입니다. WordPress(가장 유명한 웹 리소스 관리 시스템 중 하나)용 장바구니 플러그인으로, 주로 블로그를 만들고 구성하는 데 사용됩니다. 이는 완전 무료로 제공되며 사이트 방문자가 웹사이트에서 구매할 수 있도록 해줍니다.

즉, 이 플러그인을 사용하면 (워드프레스 기반) 온라인 상점을 만들 수 있습니다. 이 전자 상거래 플러그인에는 현대적인 요구에 맞는 필요한 모든 도구, 설정 및 옵션이 있습니다.




맨 위