

{"id":80150,"date":"2020-08-10T09:00:11","date_gmt":"2020-08-10T03:30:11","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=80150"},"modified":"2021-08-25T13:48:10","modified_gmt":"2021-08-25T08:18:10","slug":"jsp-life-cycle","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/","title":{"rendered":"Life Cycle of JSP &#8211; Introduction, Phases and Methods"},"content":{"rendered":"<p>This article deals with the life cycle of JSP. From its translation to destruction, each and every path followed by the JSP has been discussed in detail. Prior to the discussion of the Life cycle, a basic difference between the web server, container, and application server has been discussed. Various stages and methods of JSP have also been mentioned.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80493\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg\" alt=\"Life Cycle of JSP\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<h2>Life Cycle of JSP<\/h2>\n<p>As the term suggests, the Life cycle can be defined as the process from creation to destruction along with the series of changes. The same applies to the life cycle of the Java Server pages. It can be defined as the procedure of origination till destruction, including all the phases a JSP follows. Further, we will discuss-<\/p>\n<ul>\n<li>Difference between Web Server, Web Container and Application Server<\/li>\n<li>Different stages in the life of JSP<\/li>\n<li>Discussion of each stage in detail.<\/li>\n<\/ul>\n<p>Before starting off with the life cycle, it is of utmost importance that we know the difference between a web server, web container and an application server.<\/p>\n<h2>Difference between a Web Server, a Web Container, and an Application Server<\/h2>\n<p><strong>Web server:<\/strong> It receives HTTP request, intercepts it. It also processes the HTTP response to the web browser of the client. E.g., Apache web server.<\/p>\n<p><strong>Web container:<\/strong> A web container is J2EE compliant implementation. Its main job is to run the runtime environment to JSP and servlets. Request receiver at web browser is forwarded here, and the result generated is sent back to the web server. E.g., Tomcat.<\/p>\n<p><strong>Application Server:<\/strong> It is regarded as the complete server as it provides the facility of both a web server as well as a web container. It is a combination of both formers. E.g., Oracle Application Server, Bea WebLogic.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Difference-between-a-web-server-a-web-container-an-application-server.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80495\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Difference-between-a-web-server-a-web-container-an-application-server.jpg\" alt=\"Difference between a web server, a web container, &amp; an application server\" width=\"723\" height=\"519\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Difference-between-a-web-server-a-web-container-an-application-server.jpg 723w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Difference-between-a-web-server-a-web-container-an-application-server-300x215.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Difference-between-a-web-server-a-web-container-an-application-server-150x108.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Difference-between-a-web-server-a-web-container-an-application-server-520x373.jpg 520w\" sizes=\"auto, (max-width: 723px) 100vw, 723px\" \/><\/a><\/p>\n<h2>Stages of Java Server Page<\/h2>\n<p>JSP passes through the following phases:<br \/>\n1) Translation of JSP page<br \/>\n2) Compilation of JSP page<br \/>\n3) Class loading<br \/>\n4) Instantiation<br \/>\n5) Initialization<br \/>\n6) Request Processing<br \/>\n7) Destruction<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Phases-of-JSP-Life-Cycle.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80496\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Phases-of-JSP-Life-Cycle.jpg\" alt=\"Phases of JSP Life Cycle\" width=\"647\" height=\"618\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Phases-of-JSP-Life-Cycle.jpg 647w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Phases-of-JSP-Life-Cycle-300x287.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Phases-of-JSP-Life-Cycle-150x143.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/Phases-of-JSP-Life-Cycle-520x497.jpg 520w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/a><\/p>\n<p>Let\u2019s understand each and every phase in detail with the methods that are invoked:<\/p>\n<h3>1) JSP Translation<\/h3>\n<p>When the client sends the request to the web server, it goes to the web container. Now evidently, if the JSP page is newer and the servlet class is older, it means that the page got modified. In that case, the translation is done otherwise, this step is skipped so as to improve the performance of the system as it takes time.<\/p>\n<h3>2) JSP Compilation<\/h3>\n<p>Prior to compilation, JSP engine probes if the page has ever been compiled. If the page has some modifications or if it has never been compiled, then JSP engine compiles the page. Now the compilation follows three steps:<\/p>\n<p>a) Parsing JSP<br \/>\nb) Conversion of JSP to Servlet<br \/>\nc) Compiling the servlet<\/p>\n<h3>3) Class Loading<\/h3>\n<p>At this stage, the .class file gets loaded by the loader i.e., corresponding servlet class file is loaded.<\/p>\n<h3>4) Instantiation<\/h3>\n<p>As we compiled the servlet, the object of the generated servlet is created. This process takes place after the class file is loaded in the memory. As soon as the instantiation takes place the objects: ServletConfig and ServletContext get accessible to the JSP class.<\/p>\n<p><strong>ServletConfig<\/strong> is a pre-defined interface used to develop flexible servlets. <strong>ServletContext<\/strong> is generated by the web container when the project is deployed. ServletConfig object exists as one per servlet program, whereas ServletContext object exists as one per web application.<\/p>\n<h3>5) Initialization<\/h3>\n<p>After instantiation, container invokes jspInit() method better known as initialization of JSP. It basically initializes the instance we created. Talking in detail, it is done to initialize resources needed to process the request i.e. resources like databases, allow JSP pages to read data, create lookup tables, and manage network connections.<\/p>\n<p>Though it is invoked by the container only once, it can be overridden by the author.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public void jspInit() { \/ \/Initialization code\r\n }\r\n\/<\/pre>\n<h3>6) Request Processing<\/h3>\n<p>After the initialization of servlet instances, a new thread gets created. All the interactions necessary to process requests occur at this stage. Thus, container invokes _jspService() method. This method contains two parameters:<\/p>\n<ul>\n<li>HTTPServletRequest req<\/li>\n<li>HTTPServletResponse res<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public void _jspService(HTTPServletRequest req, HTTPServletResponse res) {\r\n  \/\/ Enter jsp Service code here\r\n}<\/pre>\n<p>This service method is responsible for generating a response to the request. Not only this, but it also generates response to all seven HTTP methods, namely:<\/p>\n<p><strong>a) GET<\/strong><\/p>\n<p>GET is a read only request. It tends to get information from the server. GET request posses 3 standard triggers:<\/p>\n<ul>\n<li>Typing in the address line of the browser and clicking enter or go.<\/li>\n<li>Pressing submit button in HTML form.<\/li>\n<li>Clicking on the link of a web page in order to access it.<\/li>\n<\/ul>\n<p><strong>b) POST<\/strong><\/p>\n<p>This method gets triggered when the form settings is made as a post.<\/p>\n<p><strong>c) HEAD<\/strong><\/p>\n<p>This method is almost similar to the GET method. Though this method doesn\u2019t return a message body, it can check if a resource hasn&#8217;t been recently updated, valid, and accessible.<\/p>\n<p><strong>d) PUT<\/strong><\/p>\n<p>Using the request payload, PUT method replaces current representations of the target resource.<\/p>\n<p><strong>e) DELETE<\/strong><\/p>\n<p>This method deletes the specified resource.<\/p>\n<p><strong>f) CONNECT<\/strong><\/p>\n<p>This method establishes a path identified by the target resource to reach the server.<\/p>\n<p><strong>g) OPTIONS<\/strong><\/p>\n<p>This method describes the communication options that we need to communicate with the target resource.<\/p>\n<h3>7) Destruction<\/h3>\n<p>The destruction basically represents cleanup. For the cleanup jspDestroy() method gets invoked. This cleanup means that the JSP page after processing gets removed from the container. This method destroys the instance of the servlet class code, and all the connections to database and network are released. Opened files are also closed. jspDestroy() is overridden whenever the cleanup needs to be done.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public void jspDestroy() {\r\n  \/\/Cleanup code\r\n}<\/pre>\n<h2>Conclusion<\/h2>\n<p>Finally we have seen JSP Life cycle, various phases of JSP Lifecycle and methods invoked in it: In short,<\/p>\n<ul>\n<li>Web container translates JSP code into servlet class source (.java)<\/li>\n<li>It is compiled into java servlet class.<\/li>\n<li>Class Loader loads Servlet class bytecode.<\/li>\n<li>Container creates instance of that servlet class<\/li>\n<li>Initialize servlet can now service requests.<\/li>\n<li>_jspService() is invoked by web container for each request.<\/li>\n<li>To remove the servlet instance jspDestroy() is called. It performs cleanup.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This article deals with the life cycle of JSP. From its translation to destruction, each and every path followed by the JSP has been discussed in detail. Prior to the discussion of the Life&#46;&#46;&#46;<\/p>\n","protected":false},"author":10,"featured_media":80493,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22403],"tags":[22898,22900,22897,22899],"class_list":["post-80150","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jsp","tag-jsp-life-cycle","tag-jsp-methods","tag-life-cycle-of-jsp","tag-stages-of-jsp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Life Cycle of JSP - Introduction, Phases and Methods - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn about Life cycle of JSP &amp; its Various stages - Translation, Compilation, Class loading, Instantiation, Initialization, Request Processing, Destruction\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Life Cycle of JSP - Introduction, Phases and Methods - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn about Life cycle of JSP &amp; its Various stages - Translation, Compilation, Class loading, Instantiation, Initialization, Request Processing, Destruction\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-10T03:30:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-25T08:18:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Life Cycle of JSP - Introduction, Phases and Methods - DataFlair","description":"Learn about Life cycle of JSP & its Various stages - Translation, Compilation, Class loading, Instantiation, Initialization, Request Processing, Destruction","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/","og_locale":"en_US","og_type":"article","og_title":"Life Cycle of JSP - Introduction, Phases and Methods - DataFlair","og_description":"Learn about Life cycle of JSP & its Various stages - Translation, Compilation, Class loading, Instantiation, Initialization, Request Processing, Destruction","og_url":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-08-10T03:30:11+00:00","article_modified_time":"2021-08-25T08:18:10+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33"},"headline":"Life Cycle of JSP &#8211; Introduction, Phases and Methods","datePublished":"2020-08-10T03:30:11+00:00","dateModified":"2021-08-25T08:18:10+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/"},"wordCount":991,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg","keywords":["JSP Life Cycle","jsp methods","Life Cycle of JSP","stages of jsp"],"articleSection":["JSP Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/","url":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/","name":"Life Cycle of JSP - Introduction, Phases and Methods - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg","datePublished":"2020-08-10T03:30:11+00:00","dateModified":"2021-08-25T08:18:10+00:00","description":"Learn about Life cycle of JSP & its Various stages - Translation, Compilation, Class loading, Instantiation, Initialization, Request Processing, Destruction","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/08\/JSP-Life-Cycle.jpg","width":1200,"height":628,"caption":"Life Cycle of JSP"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/jsp-life-cycle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"JSP Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/jsp\/"},{"@type":"ListItem","position":3,"name":"Life Cycle of JSP &#8211; Introduction, Phases and Methods"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team is passionate about delivering top-notch tutorials and resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With expertise in the tech industry, we simplify complex topics to help learners excel. Stay updated with our latest insights.","url":"https:\/\/data-flair.training\/blogs\/author\/dfadteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/80150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=80150"}],"version-history":[{"count":3,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/80150\/revisions"}],"predecessor-version":[{"id":86491,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/80150\/revisions\/86491"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/80493"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=80150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=80150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=80150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}