{"id":86879,"date":"2023-01-25T10:00:17","date_gmt":"2023-01-25T04:30:17","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=86879"},"modified":"2023-01-25T10:00:17","modified_gmt":"2023-01-25T04:30:17","slug":"mastering-networking-in-python3","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/","title":{"rendered":"Mastering Networking in Python3"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Python 3 is a high-level programming language widely used for networking purposes. It offers a variety of tools and libraries that make it easy to create network-enabled applications. One of the key features of Python 3 is its support for sockets, which are the fundamental building blocks of network communication. In this article, we will learn about Networking in Python3. Let&#8217;s start!!!<\/span><\/p>\n<h3>Networking in Python3<\/h3>\n<p><span style=\"font-weight: 400\">A socket is a bidirectional communication endpoint that sends and receives data over a network. Python3 provides a low-level socket API, and a higher-level interface called the asyncio library, making it easy to write concurrent and asynchronous code for networking applications.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The asyncio library provides several functional components for working with sockets, including event loops, coroutines, and futures. With these tools, it is possible to create highly efficient and scalable network applications that simultaneously handle thousands of connections.<\/span><\/p>\n<p><span style=\"font-weight: 400\">One common use of Python3 for networking is creating web servers and applications. The asyncio library makes it easy to implement the HTTP protocol, allowing you to create custom web servers that can serve dynamic content to clients. The flask and Django libraries are popular frameworks for building web applications in Python3.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Another area where Python3 is commonly used for networking is network automation. With its robust and easy-to-use libraries, Python3 makes it possible to automate many common networking tasks, such as provisioning and configuring network devices, monitoring network performance, and performing network analysis. The napalm and netmiko libraries are examples of tools for network automation with Python3.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Socket module in python3<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The socket module in Python3 provides a low-level interface for working with sockets. It allows you to create socket objects representing communication endpoints and establish connections with other networked devices. In addition, the socket module provides several useful functions and constants for working with sockets, such as socket.AF_INET for specifying the address family (e.g. IPv4) and socket.SOCK_STREAM for specifying the type of socket (e.g. a stream socket).<\/span><\/p>\n<p><span style=\"font-weight: 400\">To create a socket, you can use the socket.socket() function, which takes the address family and socket type as arguments. For example,<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import socket\n# Create a socket\nsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n<\/pre>\n<p><span style=\"font-weight: 400\">Once you have created a socket, you can connect with another networked device. This is typically done using the connect() method, which takes the address and port of the remote device as arguments. For example,<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Establish a connection to a remote device\nsock.connect(('www.TechVidvan.com', 80))\n<\/pre>\n<p><span style=\"font-weight: 400\">Once a connection has been established, you can use the socket to send and receive data over the network. It is done using the send() and recv() methods, which are used to send and receive data, respectively. For example,<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Send data over the network\nsock.send('Hello, world!')\n\n# Receive data from the network\ndata = sock.recv(1024)\n<\/pre>\n<h3><span style=\"font-weight: 400\">Socket Vocabulary<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Sockets do have their own vocabulary, like-<\/span><\/p>\n<p><strong>1. domain<\/strong><\/p>\n<p><span style=\"font-weight: 400\">A family of protocols that is used as a transport mechanism. These values \u200b\u200bare constants such as AF_INET, PF_INET, PF_UNIX, PF_X25, and so on.<\/span><\/p>\n<p><strong>2. types<\/strong><\/p>\n<p><span style=\"font-weight: 400\">The type of communication between two endpoints, typically SOCK_STREAM for connection-oriented protocols and SOCK_DGRAM for connectionless protocols.<\/span><\/p>\n<p><strong>3. protocol<\/strong><\/p>\n<p><span style=\"font-weight: 400\">Typically null, this can be used to identify a protocol variant within a domain and type<\/span><\/p>\n<p><strong>4. hostname<\/strong><\/p>\n<p><span style=\"font-weight: 400\">Network Interface Identifier \u2212<\/span><\/p>\n<p><span style=\"font-weight: 400\">A string that can be a hostname, a dotted address, or an IPV6 address with a colon (and possibly a period)<\/span><\/p>\n<p><span style=\"font-weight: 400\">A &#8220;&lt;broadcast&gt;&#8221; string that specifies the INADDR_BROADCAST address.<\/span><\/p>\n<p><span style=\"font-weight: 400\">A zero-length string that specifies INADDR_ANY, or<\/span><\/p>\n<p><span style=\"font-weight: 400\">An integer interpreted as a binary address in host byte order.<\/span><\/p>\n<p><strong>5. ports<\/strong><\/p>\n<p><span style=\"font-weight: 400\">Each server listens for clients calling on one or more ports. Port can be a Fixnum port number, a string containing a port number, or a service name.<\/span><\/p>\n<h3>Socket Modules<\/h3>\n<p><span style=\"font-weight: 400\">To create a socket, you need to use the socket.socket() function available in the socket module, which has the general syntax \u2212<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">s = socket.socket (socket_family, socket_type, protocol = 0)<\/pre>\n<p><span style=\"font-weight: 400\">Here is a description of the \u2212 parameters<\/span><\/p>\n<ul>\n<li><strong>socket_family<\/strong> \u2212 This is either AF_UNIX or AF_INET as explained earlier.<\/li>\n<li><strong>socket_type<\/strong> \u2212 This is either SOCK_STREAM or SOCK_DGRAM.<\/li>\n<li><strong>protocol<\/strong> \u2212 This is usually omitted, default is 0.<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Once you have a socket object, you can use the required functions to create a client or server program.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Server socket methods<\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-86921\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/01\/server-socket-methods.webp\" alt=\"server socket methods\" width=\"960\" height=\"502\" \/><\/p>\n<p><span style=\"font-weight: 400\">A server socket is a socket used to accept incoming client connections. It typically listens on a specific port on the server and waits for clients to initiate connections. Once a connection has been established, the server socket can exchange data with the client socket.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Several frequently used techniques for dealing with server sockets are available in the socket module in Python 3. Among the most important are the following:<\/span><\/p>\n<p><b>1. bind()<\/b><span style=\"font-weight: 400\">: This method associates a socket with a specific network address and port. The server socket typically does this before it starts listening for incoming connections. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import socket\n# Create a socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n# Bind the socket to an address and port sock.bind(('0.0.0.0', 8080))\n<\/pre>\n<p><b>2. listen()<\/b><span style=\"font-weight: 400\">: This method starts listening for incoming connections on a socket. It takes an integer argument that specifies the maximum number of queued connections to allow. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Start listening for incoming connections \nsock.listen(5)\n<\/pre>\n<p><b>3. accept()<\/b><span style=\"font-weight: 400\">: This method accepts an incoming connection from a client. It returns a new socket object that represents the connection to the client, as well as the address of the remote client. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Accept an incoming connection \nclient_sock, client_addr = sock.accept()\n<\/pre>\n<p><span style=\"font-weight: 400\">These are just some methods commonly used for working with server sockets in Python 3. In addition, the socket module provides many other methods and functions that can create and manage server sockets and other types of sockets.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Client socket methods<\/span><\/h3>\n<p><span style=\"font-weight: 400\">A client socket is a socket used to initiate connections to server sockets. It typically connects to a server socket on a specific address and port and then exchanges data with the server.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Several frequently used techniques for dealing with client sockets are available in the socket module in Python 3. Among the most important are the following:<\/span><\/p>\n<p><b>1. connect():<\/b><span style=\"font-weight: 400\"> This method establishes a connection to a server socket. It takes the address and port of the server as arguments and returns a boolean value indicating whether the connection was successful. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import socket \n# Create a socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) \n# Connect to a server \nif sock.connect(('www.TechVidvan.com', 80)): print('Connection successful!') else: print('Connection failed!')\n<\/pre>\n<p><b>2. send():<\/b><span style=\"font-weight: 400\"> This method sends data over the network to the connected server. It takes a string argument specifying the data to be sent and returns the number of bytes sent. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Send data to the server \nbytes_sent = sock.send('Hello, world!')\n<\/pre>\n<p><b>3. recv()<\/b><span style=\"font-weight: 400\">: This method receives data from the connected server. It takes an integer argument specifying the maximum number of bytes to receive and returns a string containing the received data. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Receive data from the server \ndata = sock.recv(1024)\n<\/pre>\n<p><span style=\"font-weight: 400\">These are just some commonly used methods for working with client sockets in Python 3. In addition, the socket module provides many other methods and functions that can be used to create and manage client sockets and other types of sockets.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">General socket methods<\/span><\/h3>\n<p><span style=\"font-weight: 400\">In Python 3, the socket module includes several ways of working with sockets, independent of whether they are used as clients or servers. Among the most important are the following:<\/span><\/p>\n<p><strong>1. bind():<\/strong> This method associates a socket with a specific network address and port. The server socket typically does this before it starts listening for incoming connections. For example:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import socket \n# Create a socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) \n# Bind the socket to an address and port sock.bind(('0.0.0.0', 8080))\n<\/pre>\n<p><b>2. connect():<\/b><span style=\"font-weight: 400\"> This method establishes a connection to a server socket. It takes the address and port of the server as arguments and returns a boolean value indicating whether the connection was successful. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import socket \n# Create a socket \nsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) \n# Connect to a server \nif sock.connect(('www.example.com', 80)): print('Connection successful!') else: print('Connection failed!')\n<\/pre>\n<p><b>3. send(): <\/b><span style=\"font-weight: 400\">This method sends data over the network to the connected server. It takes a string argument that specifies the data to be sent and returns the number of sent bytes. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Send data to the server \nbytes_sent = sock.send('Hello, world!')\n<\/pre>\n<p><b>4. recv()<\/b><span style=\"font-weight: 400\">: This method receives data from the connected server. It takes an integer argument that specifies the maximum number of bytes to receive and returns a string containing the received data. For example:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Receive data from the server \ndata = sock.recv(1024)\n<\/pre>\n<p><span style=\"font-weight: 400\">These are just some methods commonly used for working with sockets in Python 3. In addition, the socket module provides many other methods and functions that can be used to create and manage sockets and other types of network communication endpoints.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Conclusion<\/span><\/h3>\n<p><span style=\"font-weight: 400\">As you have likely gathered from the information provided above, Python is a powerful and versatile language that offers a wide range of tools and libraries for working with networks. So whether you create a simple client-server application, make HTTP requests to a web server, or build a complex distributed system, Python has the tools and libraries you need to do the job. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Additionally, Python&#8217;s simple and easy-to-learn syntax makes it an excellent choice for beginners and experienced programmers. Python is an excellent choice for working with networks and will be a valuable asset in any programmer&#8217;s toolkit. Its support for sockets, asyncio, and other networking components makes it a popular choice for web development and network automation tasks.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python 3 is a high-level programming language widely used for networking purposes. It offers a variety of tools and libraries that make it easy to create network-enabled applications. One of the key features of&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":86920,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1053],"tags":[4822,4823],"class_list":["post-86879","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-networking-in-python","tag-networking-in-python3"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mastering Networking in Python3 - TechVidvan<\/title>\n<meta name=\"description\" content=\"Learn about networking in Python. Python is an excellent choice for working with networks &amp; will be a valuable asset in programmer&#039;s toolkit.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mastering Networking in Python3 - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Learn about networking in Python. Python is an excellent choice for working with networks &amp; will be a valuable asset in programmer&#039;s toolkit.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-25T04:30:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/01\/mastering-networking-in-python.webp\" \/>\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\/webp\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mastering Networking in Python3 - TechVidvan","description":"Learn about networking in Python. Python is an excellent choice for working with networks & will be a valuable asset in programmer's toolkit.","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:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/","og_locale":"en_US","og_type":"article","og_title":"Mastering Networking in Python3 - TechVidvan","og_description":"Learn about networking in Python. Python is an excellent choice for working with networks & will be a valuable asset in programmer's toolkit.","og_url":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2023-01-25T04:30:17+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/01\/mastering-networking-in-python.webp","type":"image\/webp"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Mastering Networking in Python3","datePublished":"2023-01-25T04:30:17+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/"},"wordCount":1386,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/01\/mastering-networking-in-python.webp","keywords":["Networking in Python","Networking in Python3"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/","url":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/","name":"Mastering Networking in Python3 - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/01\/mastering-networking-in-python.webp","datePublished":"2023-01-25T04:30:17+00:00","description":"Learn about networking in Python. Python is an excellent choice for working with networks & will be a valuable asset in programmer's toolkit.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/01\/mastering-networking-in-python.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/01\/mastering-networking-in-python.webp","width":1200,"height":628,"caption":"mastering networking in python"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/mastering-networking-in-python3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Mastering Networking in Python3"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/86879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=86879"}],"version-history":[{"count":0,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/86879\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/86920"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=86879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=86879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=86879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}