HTTP Request via Schema
현재 HTTP 요청 데이터를 가져오기 위한 필드를 GraphQL 스키마에 추가합니다.
필드 목록
다음 필드들이 스키마에 추가됩니다.
_httpRequestBody
HTTP 요청의 본문(body).
_httpRequestClientHost
클라이언트 호스트.
_httpRequestClientIP
클라이언트 IP 주소를 가져옵니다. 서버가 올바르게 구성되어 있지 않은 경우(아래 참조), 응답은 null이 됩니다.
설정
클라이언트 IP 주소는 $_SERVER 전역 변수에서 가져오며, 일반적으로 'REMOTE_ADDR' 속성에서 가져옵니다. 그러나 플랫폼에 따라 이 정보를 가져오기 위해 다른 속성 이름을 사용해야 할 수도 있습니다.
예를 들어:
- Cloudflare는
'HTTP_CF_CONNECTING_IP'를 사용할 수 있습니다 - AWS는
'HTTP_X_FORWARDED_FOR'를 사용할 수 있습니다
사용할 속성 이름은 설정 페이지의 「Plugin Configuration > Server IP Configuration」 탭에서 구성할 수 있습니다.

_httpRequestCookie
요청 쿠키 값.
_httpRequestCookies
요청 쿠키.
_httpRequestDomain
요청된 URL의 도메인.
_httpRequestFullURL
요청된 URL(쿼리 파라미터 포함).
_httpRequestHasCookie
요청에 특정 쿠키가 포함되어 있는지 여부.
_httpRequestHasHeader
요청에 특정 헤더가 포함되어 있는지 여부.
_httpRequestHasParam
요청에 특정 파라미터가 포함되어 있는지 여부.
_httpRequestHeader
요청 헤더 값.
_httpRequestHeaders
요청 헤더.
_httpRequestHost
요청된 URL의 호스트.
_httpRequestMethod
요청 메서드.
_httpRequestParams
모든 파라미터(POST 또는 GET으로 전달됨)를 포함하는 JSON 객체.
파라미터 값은 다음 중 하나일 수 있습니다.
- 문자열(String):
?param=value - 배열(Array):
?someArray[]=1&someArray[]=2 - 배열의 배열(Array of arrays):
?someMatrix[0][0]=3&someMatrix[0][1]=4&someMatrix[1][0]=5&someMatrix[1][1]=6 - 연관 배열(오브젝트):
?someAssocArray["admins"]=20&someAssocArray["authors"]=30 - 연관 배열의 배열:
?someAssocMatrix["admins"][0]=7&someAssocMatrix["admins"][1]=8&someAssocMatrix["authors"][0]=9&someAssocMatrix["authors"][1]=10 - 기타 조합
파라미터 값을 가져오려면 앞의 두 가지 경우에 각각 _httpRequestStringParam 필드와 _httpRequestStringListParam 필드를 사용할 수 있지만, 나머지 경우에 대응하는 필드는 없습니다.
그러한 경우에는 이 _httpRequestParams 필드를 사용하여 JSON 객체를 가져온 뒤, 그 안에서 해당 값을 꺼내 주세요.
_httpRequestProtocol
요청 프로토콜.
_httpRequestQuery
쿼리 파라미터 문자열.
_httpRequestReferer
요청 리퍼러.
_httpRequestRequestTime
요청 시작 시각의 타임스탬프.
_httpRequestScheme
요청된 URL의 스킴.
_httpRequestServerIP
서버 IP 주소.
_httpRequestStringListParam
?param[]=value1¶m[]=value2 형식의 파라미터(POST 또는 GET으로 전달됨) 값.
_httpRequestStringParam
?param=value 형식의 파라미터(POST 또는 GET으로 전달됨) 값.
_httpRequestURL
요청된 URL(쿼리 파라미터 제외).
_httpRequestURLPath
요청된 URL의 절대 경로("/"로 시작).
_httpRequestUserAgent
사용자 에이전트.
예제
다음 쿼리:
query {
_httpRequestHeaders
existingHeader: _httpRequestHeader(name: "Accept")
caseInsensitiveExistingHeader: _httpRequestHeader(name: "accept")
nonExistingHeader: _httpRequestHeader(name: "Non-existing")
existingHasHeader: _httpRequestHasHeader(name: "Accept")
caseInsensitiveExistingHasHeader: _httpRequestHasHeader(name: "accept")
nonExistingHasHeader: _httpRequestHasHeader(name: "Non-existing")
_httpRequestBody
_httpRequestMethod
_httpRequestDomain
_httpRequestScheme
_httpRequestHost
_httpRequestURL
_httpRequestFullURL
_httpRequestURLPath
_httpRequestQuery
_httpRequestParams
existingParam: _httpRequestStringParam(name: "page")
caseInsensitiveExistingParam: _httpRequestStringParam(name: "PAge")
existingArrayParam: _httpRequestStringListParam(name: "someArray")
nonExistingParam: _httpRequestStringParam(name: "also-non-existing")
nonExistingListParam: _httpRequestStringListParam(name: "also-non-existing")
existingHasParam: _httpRequestHasParam(name: "page")
caseInsensitiveExistingHasParam: _httpRequestHasParam(name: "PAge")
nonExistingHasParam: _httpRequestHasParam(name: "also-non-existing")
existingCookie: _httpRequestCookie(name: "wordpress_test_cookie")
caseInsentiveExistingCookie: _httpRequestCookie(name: "Wordpress_Test_Cookie")
nonExistingCookie: _httpRequestCookie(name: "not_existing")
existingHasCookie: _httpRequestHasCookie(name: "wordpress_test_cookie")
caseInsentiveExistingHasCookie: _httpRequestHasCookie(name: "Wordpress_Test_Cookie")
nonExistingHasCookie: _httpRequestHasCookie(name: "not_existing")
_httpRequestProtocol
_httpRequestReferer
_httpRequestServerIP
_httpRequestClientIP
_httpRequestClientHost
_httpRequestUserAgent
_httpRequestCookies
_httpRequestRequestTime
}...의 결과:
{
"data": {
"_httpRequestHeaders": {
"authorization": "",
"host": "gato-graphql-pro.lndo.site",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0",
"content-length": "1924",
"accept": "application/json",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.5",
"content-type": "application/json",
"cookie": "wordpress_sec_f21902903273c44cc3a47d07e23af599=admin%7C1687924210%7CcMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1%7Cad6b03a20093f342a4107076432f7857e244174ab4d866c1887417c2e304e3fe; wp-settings-time-1=1686559494; wp-settings-1=libraryContent%3Dbrowse; wordpress_test_cookie=WP%20Cookie%20check; wp_lang=en_US; wordpress_logged_in_f21902903273c44cc3a47d07e23af599=admin%7C1687924210%7CcMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1%7C0ec85ac4a275aff3c464e139d40061aa0062a4e7376666b99ec8063a6715788a",
"dnt": "1",
"origin": "https://gato-graphql-pro.lndo.site",
"referer": "https://gato-graphql-pro.lndo.site/wp-admin/admin.php?page=gatographql&query=%7B%0A%20%20_httpRequestHeaders%0A%20%20existingHeader%3A%20_httpRequestHeader(name%3A%20%22Accept%22)%0A%20%20caseInsensitiveExistingHeader%3A%20_httpRequestHeader(name%3A%20%22accept%22)%0A%20%20nonExistingHeader%3A%20_httpRequestHeader(name%3A%20%22Non-existing%22)%0A%20%20existingHasHeader%3A%20_httpRequestHasHeader(name%3A%20%22Accept%22)%0A%20%20caseInsensitiveExistingHasHeader%3A%20_httpRequestHasHeader(name%3A%20%22accept%22)%0A%20%20nonExistingHasHeader%3A%20_httpRequestHasHeader(name%3A%20%22Non-existing%22)%0A%20%20_httpRequestBody%0A%20%20_httpRequestMethod%0A%20%20_httpRequestDomain%0A%20%20_httpRequestScheme%0A%20%20_httpRequestHost%0A%20%20_httpRequestURL%0A%20%20_httpRequestFullURL%0A%20%20_httpRequestURLPath%0A%20%20_httpRequestQuery%0A%20%20_httpRequestParams%0A%20%20existingParam%3A%20_httpRequestStringParam(name%3A%20%22page%22)%0A%20%20caseInsensitiveExistingParam%3A%20_httpRequestStringParam(name%3A%20%22PAge%22)%0A%20%20existingArrayParam%3A%20_httpRequestStringListParam(name%3A%20%22someArray%22)%0A%20%20nonExistingParam%3A%20_httpRequestStringParam(name%3A%20%22also-non-existing%22)%0A%20%20nonExistingListParam%3A%20_httpRequestStringListParam(name%3A%20%22also-non-existing%22)%0A%20%20existingHasParam%3A%20_httpRequestHasParam(name%3A%20%22page%22)%0A%20%20caseInsensitiveExistingHasParam%3A%20_httpRequestHasParam(name%3A%20%22PAge%22)%0A%20%20nonExistingHasParam%3A%20_httpRequestHasParam(name%3A%20%22also-non-existing%22)%0A%20%20existingCookie%3A%20_httpRequestCookie(name%3A%20%22wordpress_test_cookie%22)%0A%20%20caseInsentiveExistingCookie%3A%20_httpRequestCookie(name%3A%20%22Wordpress_Test_Cookie%22)%0A%20%20nonExistingCookie%3A%20_httpRequestCookie(name%3A%20%22not_existing%22)%0A%20%20existingHasCookie%3A%20_httpRequestHasCookie(name%3A%20%22wordpress_test_cookie%22)%0A%20%20caseInsentiveExistingHasCookie%3A%20_httpRequestHasCookie(name%3A%20%22Wordpress_Test_Cookie%22)%0A%20%20nonExistingHasCookie%3A%20_httpRequestHasCookie(name%3A%20%22not_existing%22)%0A%20%20_httpRequestProtocol%0A%20%20_httpRequestReferer%0A%20%20_httpRequestServerIP%0A%20%20_httpRequestClientIP%0A%20%20_httpRequestClientHost%0A%20%20_httpRequestUserAgent%0A%0A%20%20_httpRequestCookies%0A%20%20_httpRequestRequestTime%0A%7D&variables=%7B%2B%2B%22postID%22%3A%2B40%2C%2B%2B%22translateToLang%22%3A%2B%22es%22%7D&operationName=SendEmail",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"sec-gpc": "1",
"te": "trailers",
"x-forwarded-for": "172.19.0.1",
"x-forwarded-host": "gato-graphql-pro.lndo.site",
"x-forwarded-port": "443",
"x-forwarded-proto": "https",
"x-forwarded-server": "6de0a38d2bbe",
"x-lando": "on",
"x-real-ip": "172.19.0.1",
"x-wp-nonce": "258a8aed3b"
},
"existingHeader": "application/json",
"caseInsensitiveExistingHeader": "application/json",
"nonExistingHeader": null,
"existingHasHeader": true,
"caseInsensitiveExistingHasHeader": true,
"nonExistingHasHeader": false,
"_httpRequestBody": "{\"query\":\"{\\n _httpRequestHeaders\\n existingHeader: _httpRequestHeader(name: \\\"Accept\\\")\\n caseInsensitiveExistingHeader: _httpRequestHeader(name: \\\"accept\\\")\\n nonExistingHeader: _httpRequestHeader(name: \\\"Non-existing\\\")\\n existingHasHeader: _httpRequestHasHeader(name: \\\"Accept\\\")\\n caseInsensitiveExistingHasHeader: _httpRequestHasHeader(name: \\\"accept\\\")\\n nonExistingHasHeader: _httpRequestHasHeader(name: \\\"Non-existing\\\")\\n _httpRequestBody\\n _httpRequestMethod\\n _httpRequestDomain\\n _httpRequestScheme\\n _httpRequestHost\\n _httpRequestURL\\n _httpRequestFullURL\\n _httpRequestURLPath\\n _httpRequestQuery\\n _httpRequestParams\\n existingParam: _httpRequestStringParam(name: \\\"page\\\")\\n caseInsensitiveExistingParam: _httpRequestStringParam(name: \\\"PAge\\\")\\n existingArrayParam: _httpRequestStringListParam(name: \\\"someArray\\\")\\n nonExistingParam: _httpRequestStringParam(name: \\\"also-non-existing\\\")\\n nonExistingListParam: _httpRequestStringListParam(name: \\\"also-non-existing\\\")\\n existingHasParam: _httpRequestHasParam(name: \\\"page\\\")\\n caseInsensitiveExistingHasParam: _httpRequestHasParam(name: \\\"PAge\\\")\\n nonExistingHasParam: _httpRequestHasParam(name: \\\"also-non-existing\\\")\\n existingCookie: _httpRequestCookie(name: \\\"wordpress_test_cookie\\\")\\n caseInsentiveExistingCookie: _httpRequestCookie(name: \\\"Wordpress_Test_Cookie\\\")\\n nonExistingCookie: _httpRequestCookie(name: \\\"not_existing\\\")\\n existingHasCookie: _httpRequestHasCookie(name: \\\"wordpress_test_cookie\\\")\\n caseInsentiveExistingHasCookie: _httpRequestHasCookie(name: \\\"Wordpress_Test_Cookie\\\")\\n nonExistingHasCookie: _httpRequestHasCookie(name: \\\"not_existing\\\")\\n _httpRequestProtocol\\n _httpRequestReferer\\n _httpRequestServerIP\\n _httpRequestClientIP\\n _httpRequestClientHost\\n _httpRequestUserAgent\\n\\n _httpRequestCookies\\n _httpRequestRequestTime\\n}\",\"variables\":{\"postID\":40,\"translateToLang\":\"es\"}}",
"_httpRequestMethod": "POST",
"_httpRequestDomain": "lndo.site",
"_httpRequestScheme": "https",
"_httpRequestHost": "gato-graphql-pro.lndo.site",
"_httpRequestURL": "https://gato-graphql-pro.lndo.site/wp-admin/edit.php",
"_httpRequestFullURL": "https://gato-graphql-pro.lndo.site/wp-admin/edit.php?page=gatographql&action=run_query",
"_httpRequestURLPath": "/wp-admin/edit.php",
"_httpRequestQuery": "page=gatographql&action=run_query",
"_httpRequestParams": {
"page": "gatographql",
"action": "run_query"
},
"existingParam": "gatographql",
"caseInsensitiveExistingParam": null,
"existingArrayParam": null,
"nonExistingParam": null,
"nonExistingListParam": null,
"existingHasParam": true,
"caseInsensitiveExistingHasParam": false,
"nonExistingHasParam": false,
"existingCookie": "WP Cookie check",
"caseInsentiveExistingCookie": null,
"nonExistingCookie": null,
"existingHasCookie": true,
"caseInsentiveExistingHasCookie": false,
"nonExistingHasCookie": false,
"_httpRequestProtocol": "HTTP/1.1",
"_httpRequestReferer": "https://gato-graphql-pro.lndo.site/wp-admin/admin.php?page=gatographql&query=%7B%0A%20%20_httpRequestHeaders%0A%20%20existingHeader%3A%20_httpRequestHeader(name%3A%20%22Accept%22)%0A%20%20caseInsensitiveExistingHeader%3A%20_httpRequestHeader(name%3A%20%22accept%22)%0A%20%20nonExistingHeader%3A%20_httpRequestHeader(name%3A%20%22Non-existing%22)%0A%20%20existingHasHeader%3A%20_httpRequestHasHeader(name%3A%20%22accept%22)%0A%20%20caseInsensitiveExistingHasHeader%3A%20_httpRequestHasHeader(name%3A%20%22accept%22)%0A%20%20nonExistingHasHeader%3A%20_httpRequestHasHeader(name%3A%20%22Non-existing%22)%0A%20%20_httpRequestBody%0A%20%20_httpRequestMethod%0A%20%20_httpRequestDomain%0A%20%20_httpRequestScheme%0A%20%20_httpRequestHost%0A%20%20_httpRequestURL%0A%20%20_httpRequestFullURL%0A%20%20_httpRequestURLPath%0A%20%20_httpRequestQuery%0A%20%20_httpRequestParams%0A%20%20existingParam%3A%20_httpRequestStringParam(name%3A%20%22page%22)%0A%20%20caseInsensitiveExistingParam%3A%20_httpRequestStringParam(name%3A%20%22PAge%22)%0A%20%20existingArrayParam%3A%20_httpRequestStringListParam(name%3A%20%22someArray%22)%0A%20%20nonExistingParam%3A%20_httpRequestStringParam(name%3A%20%22also-non-existing%22)%0A%20%20nonExistingListParam%3A%20_httpRequestStringListParam(name%3A%20%22also-non-existing%22)%0A%20%20existingHasParam%3A%20_httpRequestHasParam(name%3A%20%22page%22)%0A%20%20caseInsensitiveExistingHasParam%3A%20_httpRequestHasParam(name%3A%20%22PAge%22)%0A%20%20nonExistingHasParam%3A%20_httpRequestHasParam(name%3A%20%22also-non-existing%22)%0A%20%20existingCookie%3A%20_httpRequestCookie(name%3A%20%22wordpress_test_cookie%22)%0A%20%20caseInsentiveExistingCookie%3A%20_httpRequestCookie(name%3A%20%22Wordpress_Test_Cookie%22)%0A%20%20nonExistingCookie%3A%20_httpRequestCookie(name%3A%20%22not_existing%22)%0A%20%20existingHasCookie%3A%20_httpRequestHasCookie(name%3A%20%22wordpress_test_cookie%22)%0A%20%20caseInsentiveExistingHasCookie%3A%20_httpRequestHasCookie(name%3A%20%22Wordpress_Test_Cookie%22)%0A%20%20nonExistingHasCookie%3A%20_httpRequestHasCookie(name%3A%20%22not_existing%22)%0A%20%20_httpRequestProtocol%0A%20%20_httpRequestReferer%0A%20%20_httpRequestServerIP%0A%20%20_httpRequestClientIP%0A%20%20_httpRequestClientHost%0A%20%20_httpRequestUserAgent%0A%0A%20%20_httpRequestCookies%0A%20%20_httpRequestRequestTime%0A%7D&variables=%7B%2B%2B%22postID%22%3A%2B40%2C%2B%2B%22translateToLang%22%3A%2B%22es%22%7D&operationName=SendEmail",
"_httpRequestServerIP": "172.19.0.4",
"_httpRequestClientIP": "172.19.0.2",
"_httpRequestClientHost": null,
"_httpRequestUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0",
"_httpRequestCookies": {
"wordpress_sec_f21902903273c44cc3a47d07e23af599": "admin|1687924210|cMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1|ad6b03a20093f342a4107076432f7857e244174ab4d866c1887417c2e304e3fe",
"wp-settings-time-1": "1686559494",
"wp-settings-1": "libraryContent=browse",
"wordpress_test_cookie": "WP Cookie check",
"wp_lang": "en_US",
"wordpress_logged_in_f21902903273c44cc3a47d07e23af599": "admin|1687924210|cMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1|0ec85ac4a275aff3c464e139d40061aa0062a4e7376666b99ec8063a6715788a"
},
"_httpRequestRequestTime": 1687836456
}
}