CGI 작동 원리에 대한 기본적인 지식이 필요합니다. @echoback이 권장하거나 Padrino, Rails를 사용하거나 다른 언어로 작업 할 때 Sinatra로 작업하는 것이 더 쉽다는 것을 알게되었습니다.
아주 기본적인 CGI입니다. 그것은 당신이 이야기하고있는 것을 따라 간단한 폼을 생성 한 다음, 웹 서버에 의해 Ruby로 전달 된 환경 테이블을 걷고, 키별로 정렬하고, 정렬 된 순서로 테이블을 출력합니다. 필드의 대부분은 직접 웹 서버 자체 하나에 적용하거나 CGI로, 같은 그 기능이 무엇인지 말을 서버로 전송의 헤더와 함께 브라우저가 전송 한 쿼리와 같은 :
#!/usr/bin/env ruby
puts "Content-Type: text/html"
puts
puts "<html><head><style type='text/css'>body{font-family: monospace;}</style></head><body>"
puts "<form name='foo' action='test_cgi.rb'>"
puts "<input type='textinput' name='inputbox'></input><br />"
puts "<textarea name='textareabox'></textarea><br />"
puts "<input type='submit'></input>"
puts "</form>"
puts "<h4>ENVIRONMENT:</h4>"
puts "<table>"
ENV.keys.sort.each do |k|
puts "<tr><td>#{k}</td><td>#{ENV[k]}</td></tr>"
end
puts "</table>"
puts "</body></html>"
복사하는 것이 코드를 작성하고 test_cgi.rb
이라는 루비 파일에 저장 한 다음 파일의 실행 가능 비트를 설정하십시오. 이 파일을 컴퓨터의 웹 서버에있는 cgi-bin
디렉토리로 이동하십시오. 브라우저를 사용하여 파일 (http://localhost:8080/cgi-bin/test_cgi.rb
또는 이와 비슷한 파일)에 액세스하고 양식에 다른 값을 입력하고 제출할 때 테이블 변경 결과를보십시오.
서버에서 브라우저 간 왕복 이동을 알게되면 Sinatra가 Rack을 기반으로 CGI로 모든 기능을 수행하는 것보다 더 많은 기능을 더 쉽게 제공 할 수있는 방법을 배우게됩니다.