php 지원 프로 토 콜 및 패키지 프로 토 콜 요약(추천)
7180 단어 php패키지 프로 토 콜협의
현재 웹 프로그램의 개발 기술 은 정말 백가쟁명,ASP.NET,PHP,JSP,Perl,AJAX 등 이다.웹 기술 이 미래 에 어떻게 발전 하 든 웹 프로그램 간 통신 의 기본 협 의 를 이해 하 는 것 은 상당히 중요 하 다.왜냐하면 이것 은 우리 로 하여 금 웹 응용 프로그램의 내부 업 무 를 이해 하 게 하기 때문이다.
PHP 는 내 장 된 URL 스타일 의 패 키 징 프로 토 콜 을 많이 가지 고 있 으 며,fopen(),copy(),file 와 유사 합 니 다.exists()와 filesize()의 파일 시스템 함수.이 패키지 프로 토 콜 외 에 streamwrapper_register()는 사용자 정의 패키지 프로 토 콜 을 등록 합 니 다.
참고:패 키 징 프로 토 콜 을 설명 하 는 URL 문법 은 지원 합 니 다.scheme://... 의 문법.scheme:/와 scheme:문법 은 지원 되 지 않 습 니 다.
php 프로 토 콜 형식
file://프로 토 콜
file://로 컬 파일 시스템 에 접근 하여 allow 를 받 지 않 습 니 다.url_fopen 과 allowurl_include 의 영향
사용 방법
file://[파일 의 절대 경로 와 파일 이름]
http://127.0.0.1/code/1.php?file=file:///E:\phpStudy\WWW\code\phpinfo.php
php://프로 토 콜
php:/-각 입 출력 흐름 에 접근(I/O streams)
allow 오픈 필요 없 음url_fopenphp://input、 php://stdin、 php://memory 화해시키다php://temp allow 오픈 필요url_include。
php://stdin, php://stdout 화해시키다php://stderr
php://stdin、php://stdout 화해시키다php://stderr PHP 프로 세 스 의 입력 이나 출력 흐름 에 직접 접근 할 수 있 습 니 다.
php://stdin 읽 기만 하고,php://stdout 화해시키다php://stderr 그냥 쓴 거 야.
php://stdin
<?php
while($line = fopen('php://stdin','r'))
{//open our file pointer to read from stdin
echo $line."
";
echo fgets($line);//
}
?>
php://stdout
<?php
$fd = fopen('php://stdout', 'w');
if ($fd) {
echo $fd."
";
fwrite($fd, "test");
fwrite($fd, "
");
fclose($fd);
}
?>
php://stderr
<?php
$stderr = fopen( 'php://stderr', 'w' );
echo $stderr."
";
fwrite($stderr, "uknow" );
fclose($stderr);
?>
php://filter
가장 자주 사용 되 는 위조 프로 토 콜 은 일반적으로 임의의 파일 을 이용 하여 읽 을 수 있다.
php://filter 데이터 흐름 이 열 릴 때 필터 링 을 위 한 메타 패키지 입 니 다.이것 은 일체 형(all-in-one)파일 함수 에 매우 유용 합 니 다.readfile(),file(),file 과 유사 합 니 다.get_contents(),데이터 흐름 내용 을 읽 기 전에 다른 필 터 를 사용 할 기회 가 없습니다.
매개 변수
명칭.
묘사 하 다.
resource=<걸 러 낼 데이터 흐름>
이 매개 변 수 는 필수 입 니 다.필터 할 데이터 흐름 을 지정 합 니 다.
read=<읽 기 체인 의 선별 목록>
이 매개 변 수 는 선택 할 수 있 습 니 다.파이프 문자 로 하나 이상 의 필터 이름 을 설정 할 수 있 습 니 다.
write=<체인 필터 링 목록>
이 매개 변 수 는 선택 할 수 있 습 니 다.파이프 문자 로 하나 이상 의 필터 이름 을 설정 할 수 있 습 니 다.
<;두 체인 의 선별 목록>
read=또는 write=접두사 가 없 는 필터 목록 은 상황 에 따라 읽 거나 쓰기 체인 에 적 용 됩 니 다.
<?php
include($_GET['file'])
?>
http://127.0.0.1/code/1.php?file=php://filter/read=convert.base64-encode/resource=./phpinfo.php
php://input
php://input 요청 한 원본 데이터 의 읽 기 전용 흐름 에 접근 할 수 있 으 며,post 요청 한 데 이 터 를 PHP 코드 로 실행 합 니 다.
zip:/,bzip 2:/,zlib:/프로 토 콜
zip:/,bzip 2:/,zlib:/프로 토 콜 은 쌍 off 의 경우 에 도 정상적으로 사용 할 수 있 습 니 다.
zip:/,bzip 2:/,zlib:/는 모두 압축 흐름 에 속 합 니 다.압축 파일 의 하위 파일 에 접근 할 수 있 습 니 다.더 중요 한 것 은 접미사 이름 을 지정 하지 않 아 도 됩 니 다.
zip://archive.zip#dir/file.txt
zip://[압축 파일 절대 경로]\#[압축 파일 내 하위 파일 이름]
테스트
먼저 실행 할 PHP 코드 를 phpcode.txt 라 고 쓰 고 phpcode.txt 를 zip 압축 합 니 다.압축 파일 이름 은 file.zip 입 니 다.zip 파일 을 업로드 할 수 있 으 면 바로 업로드 합 니 다.그렇지 않 으 면 file.zip 을 file.jpg 로 이름 을 바 꾸 고 업로드 합 니 다.다른 몇 가지 압축 형식 도 이렇게 할 수 있 습 니 다.
\#get 요청 에서 뒤의 매개 변 수 를 무시 하기 때문에 get 요청 을 사용 할 때 url 인 코딩 을%23 으로 해 야 합 니 다.또한 테스트 를 통 해 상대 경 로 를 사용 할 수 없 기 때문에 절대 경 로 를 사용 할 수 밖 에 없습니다.
http://127.0.0.1/code/1.php?file=zip://E:\phpStudy\WWW\code/1.zip%231.txt
data://프로 토 콜
data:/프로 토 콜 은 모두 on 에 있어 야 정상적으로 사용 할 수 있 습 니 다.
http://127.0.0.1/code/1.php?file=data://text/plain,<?php phpinfo()?>
http://127.0.0.1/code/1.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
glob://프로 토 콜
glob:/-일치 하 는 파일 경로 찾기 모드
<?php
$it = new DirectoryIterator($_GET['file']);
foreach($it as $f) {
printf("%s", $f->getFilename());
echo'</br>';
}
?>
expect://프로 토 콜
인 터 랙 티 브 흐름 처리
이 패키지 프로 토 콜 은 기본적으로 열 리 지 않 았 습 니 다.
expect://패 키 징 기 를 사용 하기 위해 서 는»PECL 의»Expect 확장 을 설치 해 야 합 니 다.
사용법
expect://command
첨부:HTTP 프로 토 콜 은 무상 태 와 Connection:keep-alive 의 차이 점무상 태 란 프로 토 콜 이 사무 처리 에 대한 기억력 이 없고 서버 가 클 라 이언 트 가 어떤 상태 인지 모른다 는 것 을 말한다.다른 한편,서버 에 있 는 웹 페이지 를 여 는 것 은 당신 이 이전에 이 서버 에 있 는 웹 페이지 를 여 는 것 과 아무런 연락 이 없습니다.
HTTP 는 연결 을 위 한 상태 가 없 는 프로 토 콜 입 니 다.상태 가 없 으 면 HTTP 가 TCP 연결 을 유지 하지 못 하 는 것 도 아니 고,HTTP 가 UDP 프로 토 콜(연결 없 음)을 사용 하 는 것 도 아 닙 니 다.
HTTP/1.1 부터 기본적으로 Keep-Alive 를 켜 서 연결 기능 을 유지 합 니 다.쉽게 말 하면 웹 페이지 가 열 리 면 클 라 이언 트 와 서버 간 에 HTTP 데 이 터 를 전송 하 는 TCP 연결 이 닫 히 지 않 습 니 다.클 라 이언 트 가 이 서버 의 웹 페이지 를 다시 방문 하면 이미 만들어 진 연결 을 계속 사용 합 니 다.
Keep-Alive 는 연결 을 영구적 으로 유지 하지 않 습 니 다.유지 시간 이 있 습 니 다.다른 서버 소프트웨어(예:Apache)에서 이 시간 을 설정 할 수 있 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
Reference
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.