{"id":17668,"date":"2025-11-06T06:42:11","date_gmt":"2025-11-06T06:42:11","guid":{"rendered":"https:\/\/www.kaashivinfotech.com\/blog\/?p=17668"},"modified":"2025-11-06T06:42:11","modified_gmt":"2025-11-06T06:42:11","slug":"life-cycle-of-a-servlet-in-java","status":"publish","type":"post","link":"https:\/\/www.kaashivinfotech.com\/blog\/life-cycle-of-a-servlet-in-java\/","title":{"rendered":"Java \u2013 The Fascinating Life Cycle of a Servlet You Should Know!"},"content":{"rendered":"<p data-start=\"373\" data-end=\"671\">Have you ever wondered <em data-start=\"396\" data-end=\"419\">what actually happens<\/em> behind the scenes when you type a URL in your browser and get a Java-based web page loaded instantly?\u00a0 Well, that little magic trick is performed by something known as a Servlet \u2014 a Java class that lives and breathes to handle your web requests.<\/p>\n<p data-start=\"673\" data-end=\"1000\">Let\u2019s get straight to it \u2014 this article is all about understanding the life cycle of a servlet in <a href=\"https:\/\/www.wikitechy.com\/tutorials\/java\/\" target=\"_blank\" rel=\"noopener\">Java<\/a> \u2014 not just from a textbook point of view but from a developer\u2019s real-world perspective. I\u2019ll also share some of my personal experiences dealing with servlets<\/p>\n<h2 data-start=\"1405\" data-end=\"1466\">What is a Servlet?<\/h2>\n<p data-start=\"1468\" data-end=\"1553\">Before we talk about the life cycle of a servlet in Java, let\u2019s take a step back.<\/p>\n<p data-start=\"1468\" data-end=\"1553\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-17671 \" src=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet.webp\" alt=\"\" width=\"603\" height=\"322\" srcset=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet.webp 1400w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet-300x160.webp 300w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet-1024x547.webp 1024w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet-768x410.webp 768w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet-380x203.webp 380w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet-800x427.webp 800w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/what-is-servlet-1160x620.webp 1160w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/p>\n<p data-start=\"1555\" data-end=\"1824\">A Servlet is basically a <a href=\"https:\/\/www.wikitechy.com\/tutorials\/java\/\" target=\"_blank\" rel=\"noopener\">Java<\/a> program that runs on a web server. It\u2019s used to handle requests from clients (like your web browser) and send responses (like HTML pages or JSON data). Think of it as a middleman between your web app\u2019s front-end and back-end logic.<\/p>\n<p data-start=\"1826\" data-end=\"2046\">When I first learned servlets, I imagined them as waiters in a restaurant, \u2014 they take your order (request), give it to the chef (server logic), and bring back your food (response). That\u2019s literally how servlets work!<\/p>\n<p data-start=\"2048\" data-end=\"2138\">Now let\u2019s see what happens <em data-start=\"2075\" data-end=\"2095\">behind the curtain<\/em> \u2014 the life cycle of a servlet in Java.<\/p>\n<h2 data-start=\"2145\" data-end=\"2200\">Understanding the Life Cycle of a Servlet in Java<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-17672 \" src=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/Life-Cycle-of-Servlet.webp\" alt=\"\" width=\"520\" height=\"260\" srcset=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/Life-Cycle-of-Servlet.webp 600w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/Life-Cycle-of-Servlet-300x150.webp 300w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/Life-Cycle-of-Servlet-380x190.webp 380w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><\/p>\n<p data-start=\"2202\" data-end=\"2307\">Here\u2019s the exciting part \u2014 how a servlet is <em data-start=\"2246\" data-end=\"2252\">born<\/em>, <em data-start=\"2254\" data-end=\"2261\">lives<\/em>, and eventually <em data-start=\"2278\" data-end=\"2284\">dies<\/em> in the server\u2019s world.<\/p>\n<p data-start=\"2309\" data-end=\"2534\">The life cycle of a servlet in Java is controlled by the Servlet container (like Apache Tomcat, Jetty, or GlassFish). This container takes care of loading, initializing, running, and destroying servlets automatically.<\/p>\n<p data-start=\"2536\" data-end=\"2583\">Let\u2019s walk through the major phases one by one.<\/p>\n<h3 data-start=\"2590\" data-end=\"2625\">1. Loading and Instantiation<\/h3>\n<p data-start=\"2627\" data-end=\"2772\">When a client (say your browser) sends a request for the first time, the Servlet container checks if the servlet is already loaded in memory.<\/p>\n<ul data-start=\"2774\" data-end=\"2896\">\n<li data-start=\"2774\" data-end=\"2817\">\n<p data-start=\"2776\" data-end=\"2817\">If not, it loads the servlet class.<\/p>\n<\/li>\n<li data-start=\"2818\" data-end=\"2896\">\n<p data-start=\"2820\" data-end=\"2896\">Then it creates an instance of that class using the default constructor.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2898\" data-end=\"2994\">At this stage, the servlet is like a newborn baby \u2014 just created, but not yet ready to serve.<\/p>\n<p data-start=\"2996\" data-end=\"3240\">When I first deployed a servlet, I forgot to include it in my <code class=\"\" data-line=\"\">web.xml<\/code> file. Guess what happened? The container didn\u2019t even know my servlet existed! It\u2019s like inviting guests to a party but forgetting to tell them your address. Lesson learned!<\/p>\n<h3 data-start=\"3247\" data-end=\"3288\">2. Initialization (<code class=\"\" data-line=\"\">init()<\/code> method)<\/h3>\n<p data-start=\"3290\" data-end=\"3392\">Next, the Servlet container calls the <code class=\"\" data-line=\"\">init()<\/code> method exactly once for the servlet\u2019s lifetime.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public void init() throws ServletException {\r\n    \/\/ Initialization code here\r\n}\r\n<\/pre>\n<p data-start=\"3486\" data-end=\"3529\">This is where you perform setup tasks like:<\/p>\n<ul data-start=\"3531\" data-end=\"3630\">\n<li data-start=\"3531\" data-end=\"3568\">\n<p data-start=\"3533\" data-end=\"3568\">Establishing database connections<\/p>\n<\/li>\n<li data-start=\"3569\" data-end=\"3605\">\n<p data-start=\"3571\" data-end=\"3605\">Reading configuration parameters<\/p>\n<\/li>\n<li data-start=\"3606\" data-end=\"3630\">\n<p data-start=\"3608\" data-end=\"3630\">Allocating resources<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"3632\" data-end=\"3793\">In simple words \u2014 this phase is like preparing the kitchen before serving food. Once initialization is complete, the servlet is ready to process client requests.<\/p>\n<p data-start=\"3795\" data-end=\"3950\">\ud83d\udca1 <strong data-start=\"3798\" data-end=\"3810\">Pro Tip:<\/strong> Never put heavy logic or long database operations inside <code class=\"\" data-line=\"\">init()<\/code> unless absolutely necessary \u2014 it might delay your servlet\u2019s startup time.<\/p>\n<h3 data-start=\"3957\" data-end=\"4004\">3. Request Handling (<code class=\"\" data-line=\"\">service()<\/code> method)<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-17673 \" src=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management.webp\" alt=\"\" width=\"484\" height=\"307\" srcset=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management.webp 1954w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-300x191.webp 300w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-1024x650.webp 1024w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-768x488.webp 768w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-1536x976.webp 1536w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-380x241.webp 380w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-800x508.webp 800w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/service-request-management-1160x737.webp 1160w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/p>\n<p data-start=\"4006\" data-end=\"4157\">Now comes the heart of the life cycle of a servlet in Java \u2014 the <code class=\"\" data-line=\"\">service()<\/code> method. This method is called every time a client sends a request.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public void service(ServletRequest request, ServletResponse response)\r\n        throws ServletException, IOException {\r\n    \/\/ Handle client requests here\r\n}\r\n<\/pre>\n<p data-start=\"4326\" data-end=\"4520\">The container creates separate threads for each client request (multithreading at work! \u2699\ufe0f). Inside this method, the servlet decides which specific method to call based on the HTTP request type:<\/p>\n<ul data-start=\"4522\" data-end=\"4671\">\n<li data-start=\"4522\" data-end=\"4559\">\n<p data-start=\"4524\" data-end=\"4559\"><code class=\"\" data-line=\"\">doGet()<\/code> \u2192 For HTTP GET requests<\/p>\n<\/li>\n<li data-start=\"4560\" data-end=\"4599\">\n<p data-start=\"4562\" data-end=\"4599\"><code class=\"\" data-line=\"\">doPost()<\/code> \u2192 For HTTP POST requests<\/p>\n<\/li>\n<li data-start=\"4600\" data-end=\"4632\">\n<p data-start=\"4602\" data-end=\"4632\"><code class=\"\" data-line=\"\">doPut()<\/code> \u2192 For PUT requests<\/p>\n<\/li>\n<li data-start=\"4633\" data-end=\"4671\">\n<p data-start=\"4635\" data-end=\"4671\"><code class=\"\" data-line=\"\">doDelete()<\/code> \u2192 For DELETE requests<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"4673\" data-end=\"4770\">So, if you\u2019re logging in to a site, it\u2019s probably a POST request being handled inside <code class=\"\" data-line=\"\">doPost()<\/code>.<\/p>\n<p data-start=\"4772\" data-end=\"4919\">When I was a beginner, I once wrote everything inside <code class=\"\" data-line=\"\">doGet()<\/code> and wondered why my POST requests weren\u2019t working.<\/p>\n<h3 data-start=\"4926\" data-end=\"4968\">4. Destruction (<code class=\"\" data-line=\"\">destroy()<\/code> method)<\/h3>\n<p data-start=\"4970\" data-end=\"5124\">Every servlet has to say goodbye eventually. \u00a0When the server shuts down or the servlet is no longer needed, the container calls the <code class=\"\" data-line=\"\">destroy()<\/code> method.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public void destroy() {\r\n    \/\/ Cleanup code here\r\n}\r\n<\/pre>\n<p>This method releases resources like database connections or file handles. Think of it as cleaning up your workspace before leaving for the day.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-17675  aligncenter\" src=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection.webp\" alt=\"\" width=\"466\" height=\"279\" srcset=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection.webp 1200w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-300x180.webp 300w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-1024x614.webp 1024w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-768x461.webp 768w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-380x228.webp 380w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-560x336.webp 560w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-800x480.webp 800w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-garbage-collection-1160x696.webp 1160w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><\/p>\n<h3 data-start=\"5343\" data-end=\"5371\">5. Garbage Collection<\/h3>\n<p data-start=\"5373\" data-end=\"5530\">After the <code class=\"\" data-line=\"\">destroy()<\/code> method runs, the servlet object becomes <em data-start=\"5435\" data-end=\"5468\">eligible for garbage collection<\/em>. The Java Garbage Collector (GC) then removes it from memory.<\/p>\n<p data-start=\"5532\" data-end=\"5699\">You might not see this step directly, but it\u2019s an essential part of the life cycle of a servlet in Java. It ensures efficient memory management and prevents leaks.<\/p>\n<h2 data-start=\"5532\" data-end=\"5699\">Quick Recap: Servlet Life Cycle Steps<\/h2>\n<table>\n<thead>\n<tr>\n<th>Phase<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Loading<\/strong><\/td>\n<td>The container loads the servlet class.<\/td>\n<\/tr>\n<tr>\n<td><strong>Instantiation<\/strong><\/td>\n<td>Creates an instance of the servlet.<\/td>\n<\/tr>\n<tr>\n<td><strong>Initialization<\/strong><\/td>\n<td>Calls <code class=\"\" data-line=\"\">init()<\/code> once.<\/td>\n<\/tr>\n<tr>\n<td><strong>Request Handling<\/strong><\/td>\n<td>Calls <code class=\"\" data-line=\"\">service()<\/code> for every request.<\/td>\n<\/tr>\n<tr>\n<td><strong>Destruction<\/strong><\/td>\n<td>Calls <code class=\"\" data-line=\"\">destroy()<\/code> before unloading.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>It\u2019s a clean 5-step journey from <em data-start=\"6145\" data-end=\"6155\">creation<\/em> to <em data-start=\"6159\" data-end=\"6172\">termination<\/em> \u2014 simple but powerful!<\/p>\n<h2 data-start=\"6202\" data-end=\"6244\">Real-Life Example: Servlet in Action<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-17674 \" src=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts.webp\" alt=\"\" width=\"460\" height=\"259\" srcset=\"https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts.webp 1280w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts-300x169.webp 300w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts-1024x576.webp 1024w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts-768x432.webp 768w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts-380x214.webp 380w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts-800x450.webp 800w, https:\/\/www.kaashivinfotech.com\/blog\/wp-content\/uploads\/2025\/11\/java-servelts-1160x653.webp 1160w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/p>\n<p data-start=\"6246\" data-end=\"6306\">Here\u2019s a quick example I used when I first tested a servlet:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">import java.io.*;\r\nimport javax.servlet.*;\r\nimport javax.servlet.http.*;\r\n\r\npublic class HelloServlet extends HttpServlet {\r\n    public void init() throws ServletException {\r\n        System.out.println(\"Servlet Initialized!\");\r\n    }\r\n\r\n    public void doGet(HttpServletRequest request, HttpServletResponse response)\r\n        throws ServletException, IOException {\r\n        response.setContentType(\"text\/html\");\r\n        PrintWriter out = response.getWriter();\r\n        out.println(\"&lt;h2&gt;Hello from Servlet!&lt;\/h2&gt;\");\r\n    }\r\n\r\n    public void destroy() {\r\n        System.out.println(\"Servlet Destroyed!\");\r\n    }\r\n}\r\n<\/pre>\n<p>When you deploy this on Apache Tomcat and visit the URL, you\u2019ll see the lifecycle messages in the console. It\u2019s a fun experiment to visualize the life cycle of a servlet in Java.<\/p>\n<h2 data-start=\"7667\" data-end=\"7705\">My Thoughts on Learning Servlets<\/h2>\n<p data-start=\"7707\" data-end=\"7894\">When I started learning Java web development, understanding the life cycle of a servlet in Java was a turning point. It helped me truly grasp how web servers communicate with clients.<\/p>\n<p data-start=\"7896\" data-end=\"8128\">If you ever feel confused while debugging servlet issues, just remember this: every error you face is probably happening in one of these phases \u2014 loading, init, service, or destroy. Break it down, trace it, and you\u2019ll find your fix.<\/p>\n<h2 data-start=\"8135\" data-end=\"8187\">Conclusion:<\/h2>\n<p data-start=\"8189\" data-end=\"8486\">Understanding the life cycle of a servlet in Java isn\u2019t just academic \u2014 it\u2019s essential for writing efficient, secure, and scalable web applications. Knowing how a servlet is created, initialized, serves requests, and gets destroyed gives you better control over your application\u2019s performance.<\/p>\n<p data-start=\"8488\" data-end=\"8661\">So the next time your servlet acts weird or doesn\u2019t respond,<br data-start=\"8564\" data-end=\"8567\" \/>Just walk through its life cycle \u2014 you\u2019ll know exactly where things might have gone wrong.<\/p>\n<p data-start=\"8488\" data-end=\"8661\">Want to go deeper?\u00a0<a href=\"https:\/\/www.kaashivinfotech.com\/\">Kaashiv Infotech<\/a>\u00a0Offers\u00a0<a href=\"https:\/\/www.kaashivinfotech.com\/java-full-stack-developer\/\">Full Stack Java Developer Course<\/a>,\u00a0<a href=\"https:\/\/www.kaashivinfotech.com\/java-course\/\">Java Course<\/a>,\u00a0<a href=\"https:\/\/internship.kaashivinfotech.com\/java-internship\/\">Java Internship<\/a>\u00a0In Online &amp; Offline Visit Our Website\u00a0<a href=\"https:\/\/www.kaashivinfotech.com\/\">www.kaashivinfotech.com<\/a>.<\/p>\n<h2 data-start=\"8488\" data-end=\"8661\">Related Reads:<\/h2>\n<ul>\n<li>\n<p class=\"entry-title\"><a href=\"https:\/\/www.kaashivinfotech.com\/blog\/abstract-classes-in-java\/\">Abstract Classes in Java: 7 Essential Things You Must Know to Master Java OOP<\/a><\/p>\n<\/li>\n<li>\n<p class=\"entry-title\"><a href=\"https:\/\/www.kaashivinfotech.com\/blog\/5-java-software-design-patterns\/\">5 Creational Design Patterns in Java Software Design Patterns (Explained With Real Examples)<\/a><\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"Have you ever wondered what actually happens behind the scenes when you type a URL in your browser&hellip;","protected":false},"author":8,"featured_media":17676,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"default","csco_page_header_type":"default","csco_page_load_nextpost":"default","footnotes":""},"categories":[3356,3203],"tags":[10192,10194,10195,10196,10193,10197,10198,10199],"class_list":["post-17668","post","type-post","status-publish","format-standard","has-post-thumbnail","category-java","category-programming","tag-java-the-fascinating-life-cycle-of-a-servlet-example","tag-jsp-life-cycle","tag-life-cycle-of-a-servlet-in-java","tag-servlet-architecture","tag-servlet-life-cycle-diagram","tag-servlet-life-cycle-in-java-javatpoint","tag-servlet-life-cycle-methods","tag-servlet-life-cycle-ppt","cs-entry"],"_links":{"self":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts\/17668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/comments?post=17668"}],"version-history":[{"count":1,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts\/17668\/revisions"}],"predecessor-version":[{"id":17677,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/posts\/17668\/revisions\/17677"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/media\/17676"}],"wp:attachment":[{"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/media?parent=17668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/categories?post=17668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaashivinfotech.com\/blog\/wp-json\/wp\/v2\/tags?post=17668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}