{"id":483009,"date":"2022-08-10T11:04:22","date_gmt":"2022-08-10T08:04:22","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/"},"modified":"2022-08-10T11:04:22","modified_gmt":"2022-08-10T08:04:22","slug":"how-to-rapidly-test-websites-with-phps-built-in-web-server","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/","title":{"rendered":"#How to Rapidly Test Websites With PHP\u2019s Built-In Web Server"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2bf8700ce57\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2bf8700ce57\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#%E2%80%9CHow_to_Rapidly_Test_Websites_With_PHPs_Built-In_Web_Server%E2%80%9D\" >&#8220;How to Rapidly Test Websites With PHP\u2019s Built-In Web Server&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Using_the_Built-In_Server\" >Using the Built-In Server<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Starting_the_Server\" >Starting the Server<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Enabling_Remote_Access\" >Enabling Remote Access<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Request_Fallback_Matching\" >Request Fallback Matching<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Using_a_Router_Script\" >Using a Router Script<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Detecting_the_Built-In_Server_From_Your_PHP_Code\" >Detecting the Built-In Server From Your PHP Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Handling_Multiple_Requests_Concurrently\" >Handling Multiple Requests Concurrently<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/#Summary\" >Summary<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CHow_to_Rapidly_Test_Websites_With_PHPs_Built-In_Web_Server%E2%80%9D\"><\/span>&#8220;How to Rapidly Test Websites With PHP\u2019s Built-In Web Server&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div>\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-810805\" data-pagespeed-no-defer=\"\" src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/06\/PHP.jpeg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Illustration showing the PHP logo\" width=\"1202\" height=\"677\"\/><\/p>\n<p>Need to quickly start a web server to test a PHP <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>lication? The PHP interpreter has one built-in! You can use this to rapidly inspect your work without running Apache, NGINX, or a containerization solution.<\/p>\n<p>PHP\u2019s integrated server gets relatively little attention but is quite powerful for development purposes. In this guide, we\u2019ll show how you can use it as an alternative to other micro-servers like Python\u2019s <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.python.org\/2\/library\/simplehttpserver.html\">SimpleHTTPServer<\/a> or the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/http-party\/http-server\">http-server<\/a> npm package, neither of which can execute PHP scripts.<\/p>\n<h2 id=\"using-the-built-in-server\"><span class=\"ez-toc-section\" id=\"Using_the_Built-In_Server\"><\/span>Using the Built-In Server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The built-in server is a convenience mechanism to help you test PHP sites in environments that lack a fully-fledged HTTP server. It\u2019s available in PHP 5.4 and all later versions. You can run it straight from your working directory without having to set up a virtual host first.<\/p>\n<p>Before using the server, be warned that it\u2019s designed for development use only. The PHP documentation <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.php.net\/manual\/en\/features.commandline.webserver.php\">explicitly warns against<\/a> deploying this server in front of production applications. It\u2019s not sufficiently secure to be exposed on publicly accessible networks.<\/p>\n<h2 id=\"starting-the-server\"><span class=\"ez-toc-section\" id=\"Starting_the_Server\"><\/span>Starting the Server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The server is started by passing the <code>-S<\/code> flag to the <code>php<\/code> executable:<\/p>\n<pre>$ php -S localhost:8080&#13;\n[Fri Jun 10 16:00:00 2022] PHP 8.1.5 Development Server (http:\/\/localhost:8080) started<\/pre>\n<p>The argument given to the command specifies the server\u2019s listening address. We\u2019ve used port <code>8080<\/code> on <code>localhost<\/code> in the example above. Now you can visit <code>http:\/\/localhost:8080<\/code> in your web browser to access the content in your working directory. Any PHP scripts will be executed automatically when you request them.<\/p>\n<p>You can serve a path that\u2019s outside your working directory by setting the <code>-t<\/code> flag when you start the server:<\/p>\n<pre>$ php -S localhost:8080 -t \/home\/$USER\/public_docs<\/pre>\n<p>The document root will now be <code>\/public_docs<\/code> within your home folder.<\/p>\n<p>Keep your terminal window open while you\u2019re using the web server. Press Ctrl+C to kill the process once you\u2019re done testing your site. PHP will log each incoming request into your terminal window, including the URI and HTTP method. Any uncaught PHP errors will show up in the logs too.<\/p>\n<h2 id=\"enabling-remote-access\"><span class=\"ez-toc-section\" id=\"Enabling_Remote_Access\"><\/span>Enabling Remote Access<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Listening on <code>localhost<\/code> won\u2019t allow incoming connections from other devices on your network. You can permit remote access by binding to <code>0.0.0.0<\/code> instead:<\/p>\n<pre>$ php -S 0.0.0.0:8080<\/pre>\n<p>Remember that the server\u2019s not hardened for production use and shouldn\u2019t be publicly exposed. Only allow remote access when it\u2019s absolutely necessary, such as when testing a particular feature on a mobile device. Make sure the port you use isn\u2019t open to the internet.<\/p>\n<h2 id=\"request-fallback-matching\"><span class=\"ez-toc-section\" id=\"Request_Fallback_Matching\"><\/span>Request Fallback Matching<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>PHP will look for <code>index.php<\/code> and <code>index.html<\/code> files in the active document root when the incoming request lacks a URI component. If neither of these files exists, the server will keep moving up the directory tree, looking for an index in one of your document root\u2019s parents. This means you can unintentionally end up serving content that lies outside the directory you\u2019ve specified. A 404 Not Found status will be issued when the top of the tree is reached without an index file being found.<\/p>\n<p>Requests that include a URI (such as <code>\/file<\/code>) must be matched exactly by a static file in the document root. Otherwise a 404 will be returned. PHP automatically sets the <code>Content-Type<\/code> response header to the MIME type of the served file for most popular file extensions.<\/p>\n<h2 id=\"using-a-router-script\"><span class=\"ez-toc-section\" id=\"Using_a_Router_Script\"><\/span>Using a Router Script<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can optionally configure the web server to call a script on every request. This lets you use your application\u2019s front controller to perform advanced dynamic routing.<\/p>\n<p>The router functionality is enabled by supplying a PHP filename on the command line when you start the server:<\/p>\n<pre>$ php -S localhost:8080 router.php<\/pre>\n<p>PHP will now use <code>router.php<\/code> to handle <em>every<\/em> incoming request. You can route users to the appropriate point in your application by inspecting the request URI:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"php\">\n<pre class=\"de1\"><span class=\"kw1\">if<\/span> <span class=\"br0\">(<\/span><span class=\"re0\">$_SERVER<\/span><span class=\"br0\">[<\/span><span class=\"st0\">\"REQUEST_URI\"<\/span><span class=\"br0\">]<\/span> <span class=\"sy0\">===<\/span> <span class=\"st0\">\"\/dashboard\"<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span>\n    <span class=\"kw1\">require_once<\/span><span class=\"br0\">(<\/span><span class=\"st0\">\"dashboard.php\"<\/span><span class=\"br0\">)<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">}<\/span>\n<span class=\"kw1\">else<\/span> <span class=\"kw1\">if<\/span> <span class=\"br0\">(<\/span><span class=\"re0\">$_SERVER<\/span><span class=\"br0\">[<\/span><span class=\"st0\">\"REQUEST_URI\"<\/span><span class=\"br0\">]<\/span> <span class=\"sy0\">===<\/span> <span class=\"st0\">\"\/profile\"<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span>\n    <span class=\"kw1\">require_once<\/span><span class=\"br0\">(<\/span><span class=\"st0\">\"profile.php\"<\/span><span class=\"br0\">)<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">}<\/span>\n<span class=\"kw1\">else<\/span> <span class=\"br0\">{<\/span>\n    <span class=\"kw1\">require_once<\/span><span class=\"br0\">(<\/span><span class=\"st0\">\"404.php\"<\/span><span class=\"br0\">)<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">}<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>The output produced by your router script will become the response that\u2019s sent back to the client. An exception is if the script returns <code>false<\/code>: in this case, PHP will fallback to returning the static file that matches the original request URI.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"php\">\n<pre class=\"de1\"><span class=\"kw1\">if<\/span> <span class=\"br0\">(<\/span>str_starts_with<span class=\"br0\">(<\/span><span class=\"re0\">$_SERVER<\/span><span class=\"br0\">[<\/span><span class=\"st0\">\"REQUEST_URI\"<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">\"\/api\"<\/span><span class=\"br0\">)<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span>\n    <span class=\"co1\">\/\/ Route to the correct API endpoint<\/span>\n    <span class=\"co1\">\/\/ ... <\/span>\n<span class=\"br0\">}<\/span>\n<span class=\"kw1\">else<\/span> <span class=\"br0\">{<\/span>\n    <span class=\"co1\">\/\/ Serve other routes statically<\/span>\n    <span class=\"kw1\">return<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">}<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h2 id=\"detecting-the-built-in-server-from-your-php-code\"><span class=\"ez-toc-section\" id=\"Detecting_the_Built-In_Server_From_Your_PHP_Code\"><\/span>Detecting the Built-In Server From Your PHP Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Your PHP code can detect whether it\u2019s being called by the built-in web server by inspecting the active interface name. The <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.php.net\/manual\/en\/function.php-sapi-name.php\"><code>php_sapi_name()<\/code><\/a> function provides this value. It\u2019ll be set to <code>cli-server<\/code> when the script was invoked by the integrated server component.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"php\">\n<pre class=\"de1\"><span class=\"kw1\">if<\/span> <span class=\"br0\">(<\/span><span class=\"kw3\">php_sapi_name<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span> <span class=\"sy0\">===<\/span> <span class=\"st0\">\"cli-server\"<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span>\n    enable_development_mode<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">}<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h2 id=\"handling-multiple-requests-concurrently\"><span class=\"ez-toc-section\" id=\"Handling_Multiple_Requests_Concurrently\"><\/span>Handling Multiple Requests Concurrently<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The server defaults to running in a single-process synchronous mode by default. Requests are handled individually and block each other from executing until they complete. This is one of the reasons why the server\u2019s unsuitable for production use.<\/p>\n<p>PHP 7.4 added support for handling multiple requests concurrently. It relies on <code>fork()<\/code> availability and doesn\u2019t work on Windows. The server will fork a new worker to serve each incoming request when this mode is enabled. You can activate it by setting the <code>PHP_CLI_SERVER_WORKERS<\/code> environment variable to the number of workers you want:<\/p>\n<pre>$ PHP_CLI_SERVER_WORKERS=8 php -S localhost:8080<\/pre>\n<p>This functionality is still marked as experimental in PHP 8.1.<\/p>\n<h2 id=\"summary\"><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>PHP has a built-in web server that\u2019s a convenient way to test your applications and quickly expose local filesystem content on your local network. It supports PHP script execution, catch-all routing, and static files with most common MIME types.<\/p>\n<p>Although the server now supports an optional forking mode, it\u2019s not advisable to use it in production. It\u2019s intended as a development aid and lacks the customization and security features you\u2019ll need for your public deployments. Where it excels is as a lightweight and integrated alternative to conventional development platforms like <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.wampserver.com\/en\">WAMP<\/a>, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.apachefriends.org\">XAMPP<\/a>, and Docker containers.<\/p>\n<\/div>\n<p><script>\n setTimeout(function(){\n  !function(f,b,e,v,n,t,s)\n  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n  n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];\n  s.parentNode.insertBefore(t,s) } (window, document,'script',\n  'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n   fbq('init', '335401813750447');\n   fbq('track', 'PageView');\n  },3000);\n<\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.howtogeek.com\/devops\/how-to-rapidly-test-websites-with-phps-built-in-web-server\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;How to Rapidly Test Websites With PHP\u2019s Built-In Web Server&#8221; Need to quickly start a web server to test a PHP application? The PHP interpreter has one built-in! You can use this to rapidly inspect your work without running Apache, NGINX, or a containerization solution. PHP\u2019s integrated server gets relatively little attention but is quite&#8230;<\/p>\n","protected":false},"author":1,"featured_media":483010,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/06\/PHP.jpeg?height=200p&trim=2,2,2,2","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-483009","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/483009","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=483009"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/483009\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/483010"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=483009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=483009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=483009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}