CGI
[ common gateway interface ]
사용자가 서버에게 웹페이지를 통한 요청이 있었을 때, 그것이 응용프로그램에 의해 처리 될 필요가 있다면 서버가 응용프로그램을 실행시키고 필요한 메시지를 받는다. 이 때 서버와 응용프로그램 사이에 데이터를 주고 받기 위한 표준화된 방법을 CGI라고 한다.공통 게이트웨이 인터페이스(common gateway interface)의 약어로, 웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약들을 말한다. 브라우저가 서버를 경유하여 데이터베이스 서버에 질의를 내는 등 대화형 웹페이지를 작성할 때 이용된다. 게이트웨이의 개발 언어로는 유닉스에서는 문자열 처리가 간단한 펄(perl), 윈도NT에서는 비주얼베이식(visual basic) 등이 사용되는 경우가 많다.

외부 프로그램을 실행하는 표준 방식으로 자리잡았으며 사용이 편리하다는 장점이 있지만, 서버에서 많은 프로그램을 수행하므로 서버에 무리를 준다는 단점도 지니고 있다.

[출처] CGI | 두산백과

junecnol:

http://www.ktword.co.kr/abbr_view.php?m_temp1=1829 에서 참조

 

1. 개요



  ㅇ Proxy라는 용어의 뜻은 다른 사람을 대신하여 무엇인가를 하는 것을 말하며,

     - 네트워크적인 관점에서 Proxy Server 는 다수의 클라이언트를 대신하여 일을

       할 수 있는 서버를 말한다.  에서는 프록시 서버를 웹 캐시라고도 한다.



 2. HTTP Proxy



  ㅇ HTTP Proxy에서는 다른 컴퓨터로부터  웹 페이지 요구를 받으면, 이 Proxy는 요구된

     페이지를 얻은 결과를 해당 컴퓨터에 돌려준다.

  ㅇ 즉, Proxy는 요구된 페이지의 캐시(Cache)를 가질 수 있기 때문에, 다른 컴퓨터가

     같은 페이지를 부탁해 왔다면 캐시 내의 복사본를 대신 돌려준다.

  ㅇ 이것으로 대역폭 자원을 유효하게 이용할 수 있으며, 빠르게 응답할 수 있다.

  ㅇ 부가적으로, 클라이언트 머신이 외부 세계에 직접 접속하지 못하기 때문에, 내부

     네트워크를 안전하게 하는 방법으로 사용할 수 있다.



 3. 주요 역할 및 기능



  ㅇ 캐시 기능

     - 외부 네트워크에 대해 자주 요구된 정보에 대한 일시적 저장 및 빠른 응답 기능

  ㅇ 보안 기능

     - 네트워크 외부에서는 실제 사용자의 위치를 감추는 등의 효과를 볼 수 있다.

  ㅇ 브라우저 부담 경감

     - HTTP 만을 사용하는 웹브라우저는 프록시 서버 측에서 기타 프로토콜(FTP 등)로

       받아놓은 자료를 활용할 수 있게함으로써 브라우져를 덩치 작은 프로그램으로

       유지가 가능

  ㅇ IP 주소 절약

     - 통상 프록시 서버는 외부 네트워크에 접속하는 유일한 장비이므로 이 서버에서만

       유일한 IP 주소가 필요



 4. 방화벽 응용



  ㅇ 잘 설정된 Proxy는 효율을 향상시키는 것과 동시에 좋은 Firewall 이 될 수도 있다

  ㅇ 프록시 서버는 방화벽의 호스트에서 실행되는 전문화된 어플리케이션 또는 서버 프

     로그램으로서, 방화벽의 베스천 호스트에서 설치 되어 운용된다.





5. VoIP 관련 프락시 서버 ☞ SIP 구성요소 참조

junecnol:

http://www.ktword.co.kr/abbr_view.php?m_temp1=1829 에서 참조

 

1. 개요



  ㅇ Proxy라는 용어의 뜻은 다른 사람을 대신하여 무엇인가를 하는 것을 말하며,

     - 네트워크적인 관점에서 Proxy Server 는 다수의 클라이언트를 대신하여 일을

       할 수 있는 서버를 말한다.  에서는 프록시 서버를 웹 캐시라고도 한다.



 2. HTTP Proxy



  ㅇ HTTP Proxy에서는 다른 컴퓨터로부터  웹 페이지 요구를 받으면, 이 Proxy는 요구된

     페이지를 얻은 결과를 해당 컴퓨터에 돌려준다.

  ㅇ 즉, Proxy는 요구된 페이지의 캐시(Cache)를 가질 수 있기 때문에, 다른 컴퓨터가

     같은 페이지를 부탁해 왔다면 캐시 내의 복사본를 대신 돌려준다.

  ㅇ 이것으로 대역폭 자원을 유효하게 이용할 수 있으며, 빠르게 응답할 수 있다.

  ㅇ 부가적으로, 클라이언트 머신이 외부 세계에 직접 접속하지 못하기 때문에, 내부

     네트워크를 안전하게 하는 방법으로 사용할 수 있다.



 3. 주요 역할 및 기능



  ㅇ 캐시 기능

     - 외부 네트워크에 대해 자주 요구된 정보에 대한 일시적 저장 및 빠른 응답 기능

  ㅇ 보안 기능

     - 네트워크 외부에서는 실제 사용자의 위치를 감추는 등의 효과를 볼 수 있다.

  ㅇ 브라우저 부담 경감

     - HTTP 만을 사용하는 웹브라우저는 프록시 서버 측에서 기타 프로토콜(FTP 등)로

       받아놓은 자료를 활용할 수 있게함으로써 브라우져를 덩치 작은 프로그램으로

       유지가 가능

  ㅇ IP 주소 절약

     - 통상 프록시 서버는 외부 네트워크에 접속하는 유일한 장비이므로 이 서버에서만

       유일한 IP 주소가 필요



 4. 방화벽 응용



  ㅇ 잘 설정된 Proxy는 효율을 향상시키는 것과 동시에 좋은 Firewall 이 될 수도 있다

  ㅇ 프록시 서버는 방화벽의 호스트에서 실행되는 전문화된 어플리케이션 또는 서버 프

     로그램으로서, 방화벽의 베스천 호스트에서 설치 되어 운용된다.





5. VoIP 관련 프락시 서버 ☞ SIP 구성요소 참조

 

http://www.peachpit.com/articles/article.aspx?p=483799&seqNum=7 에서 참조

Making Sticky Forms

You’ve certainly come across sticky forms, even if you didn’t know that’s what they were called. A sticky form is simply a standard HTML form that remembers how you filled it out. This is a particularly nice feature for end users, especially if you are requiring them to resubmit a form.

http://www.tutorialcode.com/php/sticky-forms/ 에서 참조

Learn how to create and use sticky forms, which saves data that has been entered into a form, so a user does not have to re-type out the information if there is an error.
In this tutorial I will take you from the basics of HTML and PHP, so you do not need any knowledge of either language to learn how to make stick forms!

The basic principal to sticky forms is that you are just taking the data sent by the form (Using a POST or GET method) and then just setting that data as the value for the input. If this explanation confuses you, read on as I explain it all in great detail!

I will be creating a form with just 2 inputs, your name and also a description of yourself. The name input will just be a text input and the description box will be a text area input.

So let’s start off by creating our form.

1 <html>
2 <body>
3 <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

Now, that above piece of code just starts a new HTML document with the <html> tag, then it opens the body using the <body> tag. Then we start off creating our form, the <form> tag tells the browser that you are starting a form, then the action=” ” attribute tells the browser, where to go when the form is submitted. In this case I have used a little bit of PHP to make this script more dynamic. I have set it to <?php $_SERVER[‘PHP_SELF’]; ?> what this will do is just put the name of the page you are on (Lets just say form.php) and will put it in there. So no matter what the name of your page is, it will change to meet your needs. Then the method attribute tells the browser whether or not to use the POST method or the GET method. The POST method is much more secure so I will be using that method for this

1 <p><b>Your Name : </b><input type="text" name="name" value="
2 <?php if(isset($_POST['name'])) echo $_POST['name'];
3 ?>
4 " /></p>

The above piece of code is a very important piece of code, with lots of things to explain.

First off I use a <p> tag to start a new paragraph, then I put a <b> tag, anything within the <b> </b> tags is made bold. Then I start off a new input by using the <input> tag. The type=” ” attribute is where you define what type of input you would like (Ex : text, checkbox, radio, etc..) For this tutorial we are using a text form input. Then the name=” ” attribute is where we set the name of this specific input. Seeing as how this input is used to put your name in, that is what I will call it.

Next we have the most important piece of code. This is where the term “Stick Form” comes into play. As you can see I start a new PHP code block, then I start a new if statement.

What it is saying is, IF the input “name” is submitted THEN echo out the value of “name”. The isset() function in PHP is used to find out if something has been submitted. Then we use a $_POST global variable to find out if the input of “name” has been submitted. If we were using GET as our form method (Ex : method=”get”) then we would have this set to $_GET[‘name’].

1 <p><b>Your Description : </b><br />
2 <textarea name="description" cols="35" rows="5">
3 <?php if(isset($_POST['description'])) echo $_POST['description'];?>
4 </textarea>

The above piece of code is pretty much the exact same as the one before it. This just tells the browser to create a textarea that is 35 columns wide and 5 rows tall. Then it uses the same “Stick Form” idea as it did in the previous input.

1 <p><input type="submit" name="submit" value="Submit" /></p>
2 </form>
3 </body>
4 </html>

This piece of code just creates a submit button to submit our form (And see sticky forms in action) and then we close off our form, body and html tags.

We should now have our finalized code which looks like this :

01 <html>
02 <body>
03 <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
04   
05 <p><b>Your Name : </b><input type="text" name="name" value="<?php if(isset($_POST['name'])) echo $_POST['name'];?>" /></p>
06   
07 <p><b>Your Description : </b><br />
08 <textarea name="description" cols="6" rows="35"><?php if(isset($_POST['description'])) echo $_POST['description'];?></textarea>
09   
10 <p><input type="submit" name="submit" value="Submit" /></p>
11 </form>
12 </body>
13 </html>

Then we just need to save our file as something, I will be saving mine as form.php. Again though, you can save it as anything because the form is dynamic.

Now upload your file to your website and go to the file (form.php in my case). Enter in some info into the 2 inputs then click submit, you will see that the information that you entered into the text boxes stay there. You can use this method when you have error checking on your forms (When you check for empty forms). You just add this to your forms value=” ” attribute so if a user gets an error on the form they don’t have to re-type out everything that was correct once again.

http://dialup.egloos.com/139627 에서 참조

웹 프로그래밍을 하는 개발자라면 HTTP규약에 정의된 메소드중에 GET, POST에 대해서는 대부분 들어보았을 것이다. 그런데 그 이외에 다른 method들이 있다는 것을 아는 사람은 그중에 몇 %일까? 우연히 DELETE라고 하는 method가 있다는 것을 어디선가 보고 나서 RFC2068(HTTP1.1)를 확인했다. GET과 POST외에도 아래와 같은 method가 있었다.

———————————–

OPTIONS

HEAD

PUT

DELETE

TRACE

———————————–

1. OPTIONS : 현재 웹서버에서 지원하는 method가 어떤 것들이 있는지를 알려준다.

2. HEAD : 웹서버가 응답시 리소스의 내용은 보내지 않고 HEADER만 보낸다. 즉, 해당 Resource가 존재하는지?
             혹은 문제가 없이 제대로 처리가 되는지를 확인할 수 있을것 같다.

3. PUT : 지정된 URL에 전달된 자료를 저장한다.

4. DELETE : 지정한 리소스를 삭제한다.

5. TRACE : 클라이언트가 송신한 request를 그대로 return한다.

http://dialup.egloos.com/139627 에서 참조

웹 프로그래밍을 하는 개발자라면 HTTP규약에 정의된 메소드중에 GET, POST에 대해서는 대부분 들어보았을 것이다. 그런데 그 이외에 다른 method들이 있다는 것을 아는 사람은 그중에 몇 %일까? 우연히 DELETE라고 하는 method가 있다는 것을 어디선가 보고 나서 RFC2068(HTTP1.1)를 확인했다. GET과 POST외에도 아래와 같은 method가 있었다.

———————————–

OPTIONS

HEAD

PUT

DELETE

TRACE

———————————–

1. OPTIONS : 현재 웹서버에서 지원하는 method가 어떤 것들이 있는지를 알려준다.

2. HEAD : 웹서버가 응답시 리소스의 내용은 보내지 않고 HEADER만 보낸다. 즉, 해당 Resource가 존재하는지?
             혹은 문제가 없이 제대로 처리가 되는지를 확인할 수 있을것 같다.

3. PUT : 지정된 URL에 전달된 자료를 저장한다.

4. DELETE : 지정한 리소스를 삭제한다.

5. TRACE : 클라이언트가 송신한 request를 그대로 return한다.