리눅스 http 통신 예제

TCP/IP 기본 문서에서 설명한 대로 TCP/IP 모델의 네트워크를 통해 통신하는 것은 클라이언트 서버 아키텍처의 형태로 이루어집니다. 즉, 클라이언트가 통신을 시작하고 서버가 후속 되고 연결이 설정됩니다. 때로는 사용자 인터페이스를 통해서가 아니라 “직접” 서버와 대화하는 것이 유용할 수 있습니다. 클라이언트에서 발급한 명령에 대한 응답으로 서버가 보내는 데이터를 확인해야 할 때 문제 해결에 도움이 될 수 있습니다. 예를 들어, 웹 사이트의 홈페이지를 검색하려면:이 artice는 클라이언트 및 서버 모드 응용 프로그램에 매우 유용합니다.하지만 난 클라이언트와 서버 모드 통신의 깊이를 원한다. 파일 업로드를 위한 POST 메시지의 예는 다음과 같습니다: 쿼리 문자열 내에서 특수 문자가 허용되지 않습니다. “%”로 대체해야 하며 그 다음에 Hex의 ASCII 코드가 뒤따릅니다. 예를 들어, “~”는 “%7E”, “#”에서 “%23″으로 대체됩니다. 공백은 다소 일반적이기 때문에 “%20” 또는 “+”로 대체할 수 있습니다(“+” 문자는 “%2B”로 대체되어야 합니다). 이 대체 프로세스를 URL 인코딩이라고 하며 결과는 URL 인코딩된 쿼리 문자열입니다. 예를 들어 폼 내에 “name=Peter Lee”, “address=#123 해피 애비뉴” 및 “언어=C++”의 이름/값이 있는 3개의 필드가 있다고 가정하면 URL 인코딩된 쿼리 문자열은 다음과 같습니다.

“텔넷”은 매우 유용한 네트워킹 유틸리티입니다. 텔넷을 사용하여 서버와 TCP 연결을 설정할 수 있습니다. 원시 HTTP 요청을 발행합니다. 예를 들어 포트 8000: Hello에서 로컬 호스트(IP 주소 127.0.0.1)에서 HTTP 서버를 시작했다고 가정합니다. 클라이언트 예제를 컴파일할 수 없습니다. 그 메시지를 얻었다: client.c:60:5: 경고: 함수 `close`(-Wimplict-function-declaration) close(양말)의 연루 선언; NC는 간단한 명령으로 프록시로 사용할 수도 있습니다. 예를 들어, 다음 예제에서는 HTTP/1.1 요청에서 “호스트” 헤더가 필수임을 보여 주겠습니다. “호스트” 헤더가 없는 경우 서버는 “400 잘못된 요청”이라는 오류를 반환합니다. 아마도 이것은 몇 가지 예제와 함께 가장 잘 표시됩니다.

먼저 HEAD를 보낸 다음 GET: 포트 31337을 소스 포트로 사용하여 5초의 시간 시간과 함께 host.example.com 포트 42에 대한 TCP 연결을 엽니다. 소문자 -o는 미리 정의 된 파일 이름으로 파일을 저장, 아래 예에서 vue-v2.5.16.js: HTTP를 사용 하 여 웹 리소스를 얻기 위해 브라우저에서 URL을 발급 할 때마다, 예를 들어 http://www.nowhere123.com/index.html, 브라우저는 요청으로 URL을 집니다. 메시지를 보내HTTP 서버로 보냅니다. HTTP 서버는 요청 메시지를 해석하고 요청한 리소스 또는 오류 메시지인 적절한 응답 메시지를 반환합니다. 이 과정은 아래에 설명되어 있습니다 : 당신은 wget과 컬을 사용할 수 있지만 생산 환경에서 몇 번 은 컬 wget 등 🙂 없습니다 . /dev/tcp 빌드 커널 함수 예제:exec 15/dev/tcp/콘솔차르.워드프레스.com/80echo-e “GET/HTTP/1.1nn” >&15cat <&15more:https://consolechars.wordpress.com/2017/03/27/devtcp-forgotten-linux-delicacy/ 위의 코드 예를 들어 localhost (127.0.0.1) 포트 8888에서 서버를 시작하면 연결을 받으면 클라이언트에서 일부 입력을 읽고 동일한 메시지로 회신합니다.