Trending December 2023 # Address Resolution Protocol: What Is Arp Header In Networking # Suggested January 2024 # Top 14 Popular

You are reading the article Address Resolution Protocol: What Is Arp Header In Networking updated in December 2023 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested January 2024 Address Resolution Protocol: What Is Arp Header In Networking

What is ARP?

Address Resolution Protocol (ARP) is an important protocol of the network layer in the OSI model, which helps find the MAC (Media Access Control) address given the system’s IP address. The ARP’s main task is to convert the 32-bit IP address (for IPv4) to a 48-bit MAC address.

This protocol is mostly used to determine the hardware (MAC) address of a device from an IP address. It is also used when one device wants to communicate with some other device on a local network. The full form of ARP is Address Resolution Protocol.

In this networking tutorial, you will learn:

How Address Resolution Protocol (ARP) works?

All OS in an IPv4 network keeps an ARP cache. When the host requests a MAC address to send a packet to another host in the LAN, it checks its ARP cache to check that the MAC address translation already presents.

Let us understand this concept with an example:

Hosta P resolves protocol address for host U for protocol messages from an application on P sent to U.

P does not resolve a protocol address for host U

By using the internet layer, host P delivers to host U by routing through T1 and T2.

Host P resolves the T1 hardware address.

Network layer on host P passes packet containing destination protocol address for U for delivery to T1

T1 delivers the packet to T2 which in turn forwards the packet to Host U.

Important ARP terms:

ARP Cache: After resolving the MAC address, the ARP sends it to the cache stored in a table for future reference. The subsequent communications can use the MAC address from the table.

ARP Cache Timeout: It is the time for which the MAC address in the ARP cache can reside.

ARP request: Broadcasting a packet over the network to validate whether we came across the destination MAC address or not.

ARP response/reply: The MAC address response that the source receives from the destination aids in further communication of the data.

Address Resolution Methods

Association between a protocol address and a hardware address is known as binding.

There are three techniques used for this purpose:

Table lookup – Bindings stored in memory with protocol address as the key. It uses the data link layer to check the protocol address to find the hardware address.

Dynamic–This type of network messaging method is used for “just-in-time” resolution. Data link layer sends message requests in a hardware address. destination responds.

Closed-form computation–In this method, a protocol address is based on a hardware address. Data link layer derives the hardware address from the protocol address.

Types of ARP

Here are four types of Address Resolution Protocol, which is given below:

Proxy ARP

Gratuitous ARP

Reverse ARP

Inverse ARP

Let us learn them all in detail:

Types of ARP

Proxy ARP:

In the Proxy ARP method, Layer 3 devices can respond to ARP requests. This ARP type is configured router will respond to the target IP address and maps the router’s MAC address with the target IP address and sender when it is reached to its destination.

Gratuitous ARP:

Gratuitous is another type of ARP request of the host. This type of ARP request helps the network to identify the duplicate IP address. Therefore, when an ARP request is sent by a router or switch to get its IP address, no ARP responses are received so that no other nodes can use the IP address allocated to that switch or router.

Reverse ARP (RARP)

Reverse ARP, also now called RARP, is a type of ARP networking protocol which is used by the client system in a LAN to request its IPv4 address from the ARP router table. The network admin mostly creates a table in the gateway-router, which helps determine the MAC address to that specific IP address.

Inverse ARP (InARP)

Inverse ARP is also called InARP, is a type of ARP used to find the nodes’ IP of addresses from the data link layer addresses. InARP is widely used for ATM networks frame relays where Layer 2 virtual circuit addressing acquired from Layer 2 signaling.

ARP Header:

ARP header

Hardware Type–It is 1 for Ethernet.

Protocol Type–It is a protocol used in the network layer.

Hardware Address Length–It is the length in bytes so that it would be 6 for Ethernet.

Protocol Address Length – Its value is 4 bytes.

Operation Code indicates that the packet is an ARP Request (1) or an ARP Response (2).

Senders Hardware Address – It is a hardware address of the source node.

Senders Protocol Address -It is a layer 3 address of the source node.

Target Hardware Address – It is used in a RARP request, which response impact both the destination’s hardware and layer 3 addresses.

Target Protocol Address – It is used in an ARP request when the response carries both layer 3 addresses and the destination’s hardware.

Advantages of using ARP

Here are the pros/benefits of using ARP

If you are using ARP, then MAC addresses can easily be known if you know the IP address of the same system.

End nodes should not be configured to “know” MAC addresses. It can be found when needed.

ARP’s goal is to enable each host on a network that allows you to build up a mapping between IP addresses and physical addresses.

The set of mappings or table stored in the host is called ARP table or ARP cache.

FAQ: ❓ What happens if an ARP request is made for a non-existing host?

If the several ARP requests are made for a non-existing host, it will increase time intervals between requests. Eventually, ARP gives up.

⚡ What if a host sends an ARP request for its IP address?

The other machines respond (gratuitous ARP) as a normal ARP request. This helps to detect an IP address has already been assigned.


ARP protocol helps to find the MAC (Media Access Control) address given the system’s IP address.

Important ARP terms are: 1) ARP Cache 2)ARP Cache Timeout 3) ARP request 4) ARP response/reply

Three types of ARP resolution techniques are: 1) Table lookup 2) Dynamic 3) Closed-form computation.

Important ARP protocols are: 1) Proxy ARP 2) Gratuitous ARP 3) Reverse ARP 4) Inverse ARP.

The components of ARP header are 1)Hardware Type 2) Protocol Type 3) Hardware Address Length 4) Protocol Address Length 5) Senders Hardware Address 6) Senders Protocol Address 7) Target Hardware Address 8) Target Protocol Address.

You're reading Address Resolution Protocol: What Is Arp Header In Networking

What Is Ftp (File Transfer Protocol)?

Not to be confused with FTTP (Fibre To The Premises), FTP stands for File Transfer Protocol. It is a classic protocol, first published as RFC 114 in 1971. Since the personal computer has been a thing, it’s been helpful. Or even necessary to be able to transfer files. In the modern world, we have multi-gigabyte USB thumb drives and multi-terabyte external hard drives. And cloud storage provides a range of storage capacities and feature sets for most use cases.

Before USB was standardized and some of the biggest cloud storage companies had even been founded, things were a bit different. In 1971 the floppy disk had just been invented, an invention that would quickly enable data transfer between devices. FTP allowed transfer over the network, though the internet wasn’t a thing yet.

FTP was so early that it didn’t even use TCP, as that hadn’t been standardized yet, either. Instead, it used NCP or the Network Control Protocol, the precursor to TCP/IP. This led to a particularly distinctive feature of FTP that has never been changed, the dual port system. NCP was a simple protocol.

So for bidirectional communication, it was essential to have two connections on two different ports, one to send and one to receive. Despite eventually being moved to use TCP/IP, which doesn’t have this requirement and can operate perfectly well with a single duplex port, the FTP standard was never updated and retains its pair of port numbers.

Use of FTP

The two port numbers that FTP uses are 20 and 21. Port 21 is used for controlling and issuing commands, while port 20 is used to transmit the data. One of the core things that need to be arranged in a connection before transferring files is the use of active or passive mode. In active mode, the client requests a file. Then the server opens a data connection to the client. Both firewalls and NAT present a considerable problem because the incoming transmission from the FTP server is on a different port and so can’t be linked to the correct device easily.

To get around this issue, the passive mode can be used. In passive mode, when the user requests a file from the server, instead of directly attempting to connect to the client on a different port, the FTP server informs the client of the port to which it should connect and lets the client initiate the connection. This effectively solves the connection issue of active mode and offers no downside beyond a slight delay in the start of file transfers.

Technically, the server must agree with the client on sending data. However, only one mode is used. That’s image mode, also commonly referred to as binary mode. In image mode, each file is sent byte by byte. The alternative modes include translating the entire file into 8-bit ASCII, which is only suitable for text files.

Authentication and Security

Being a particularly early protocol standard, you might not be surprised to hear that FTP isn’t particularly secure. FTP does offer username and password authentication. However, it doesn’t encrypt any communications, meaning that anyone in a MitM or Man in the Middle position can “listen” to the traffic “on the wire” and just read the username and password used to sign in.

FTP also offers an anonymous login feature, useful for open FTP servers, such as those used to provide software updates. In an anonymous login, the username anonymous is used. The server will then ask for an email address as a password, but any value is accepted. The lack of encryption also means that files are transmitted insecurely, so FTP isn’t ideal for use with sensitive documents.

Over time a range of extensions and alternatives have been proposed to add security to FTP. FTPS is the primary option. It extends FTP with an option to encrypt the authentication and file transfer process with TLS and is interoperable with standard FTP clients. SFTP, specifically SSH File Transfer Protocol, essentially offers the same functionality as FTP but over SSH, a secure communication protocol, which makes it incompatible with standard FTP clients and servers.


FTP stands for File Transfer Protocol. It’s an early client-server protocol for uploading and downloading files to and from an FTP server. FTP offers no security by default. While a username and password can be used, they are transmitted in plaintext, leaving them vulnerable to network sniffing. More recent extensions to FTP add the option to connect over TLS for security.

Browsers used to include an FTP client so that you could browse FTP servers directly without needing a separate client. In 2023, however, Chrome and Firefox dropped support for FTP, limiting support to discrete FTP clients. In the modern world, cloud storage solutions – and to a lesser extent, fast and spacious USB storage – have essentially replaced the use case for FTP by offering improved convenience, security, and speed.

Soap Web Services Tutorial: What Is Soap Protocol? Example

What is SOAP?

SOAP is an XML-based protocol for accessing web services over HTTP. It has some specification which could be used across all applications.

SOAP is known as the Simple Object Access Protocol, but in later times was just shortened to SOAP v1.2. SOAP is a protocol or in other words is a definition of how web services talk to each other or talk to client applications that invoke them.

SOAP was developed as an intermediate language so that applications built on various programming languages could talk easily to each other and avoid the extreme development effort.

In this SOAP Web services tutorial, you will learn-

SOAP Introduction

In today’s world, there is huge number of applications which are built on different programming languages. For example, there could be a web application designed in Java, another in .Net and another in PHP.

One of the methods used to combat this complexity is to use XML (Extensible Markup Language) as the intermediate language for exchanging data between applications.

One of the methods used to combat this complexity is to use XML (Extensible Markup Language) as the intermediate language for exchanging data between applications.

Every programming language can understand the XML markup language. Hence, XML was used as the underlying medium for data exchange.

But there are no standard specifications on use of XML across all programming languages for data exchange. That is where SOAP software comes in.

SOAP was designed to work with XML over HTTP and have some sort of specification which could be used across all applications. We will look into further details on the SOAP protocol in the subsequent chapters.

Advantages of SOAP

When developing SOAP based Web services, you need to have some of language which can be used for web services to talk with client applications. SOAP is the perfect medium which was developed in order to achieve this purpose. This protocol is also recommended by the W3C consortium which is the governing body for all web standards.

SOAP is a light-weight protocol that is used for data interchange between applications. Note the keyword ‘light.’ Since SOAP programming is based on the XML language, which itself is a light weight data interchange language, hence SOAP as a protocol that also falls in the same category.

SOAP is designed to be platform independent and is also designed to be operating system independent. So the SOAP protocol can work any programming language based applications on both Windows and Linux platform.

It works on the HTTP protocol –SOAP works on the HTTP protocol, which is the default protocol used by all web applications. Hence, there is no sort of customization which is required to run the web services built on the SOAP protocol to work on the World Wide Web.

SOAP Building Blocks

The below diagram of SOAP architecture shows the various building blocks of a SOAP Message.

SOAP Message Building Blocks

The SOAP message is nothing but a mere XML document which has the below components.

An Envelope element that identifies the XML document as a SOAP message – This is the containing part of the SOAP message and is used to encapsulate all the details in the SOAP message. This is the root element in the SOAP message.

A Header element that contains header information – The header element can contain information such as authentication credentials which can be used by the calling application. It can also contain the definition of complex types which could be used in the SOAP message. By default, the SOAP message can contain parameters which could be of simple types such as strings and numbers, but can also be a complex object type.

A simple SOAP service example of a complex type is shown below.

Suppose we wanted to send a structured data type which had a combination of a “Tutorial Name” and a “Tutorial Description,” then we would define the complex type as shown below.

A Body element that contains call and response information – This element is what contains the actual data which needs to be sent between the web service and the calling application. Below is an SOAP web service example of the SOAP body which actually works on the complex type defined in the header section. Here is the response of the Tutorial Name and Tutorial Description that is sent to the calling application which calls this web service.

SOAP Message Structure

One thing to note is that SOAP messages are normally auto-generated by the web service when it is called.

Whenever a client application calls a method in the web service, the web service will automatically generate a SOAP message which will have the necessary details of the data which will be sent from the web service to the client application.

As discussed in the previous topic of this SOAP tutorial, a simple SOAP Message has the following elements –

The Envelope element

The header element and

The body element

The Fault element (Optional)

Let’s look at an example below of a simple SOAP message and see what element actually does.

SOAP Message Structure

As seen from the above SOAP message, the first part of the SOAP message is the envelope element which is used to encapsulate the entire SOAP message.

The next element is the SOAP body which contains the details of the actual message.

Our message contains a web service which has the name of “Guru99WebService”.

The “Guru99Webservice” accepts a parameter of the type ‘int’ and has the name of TutorialID.

Now, the above SOAP message will be passed between the web service and the client application.

You can see how useful the above information is to the client application. The SOAP message tells the client application what is the name of the Web service, and also what parameters it expects and also what is the type of each parameter which is taken by the web service.

SOAP Envelope Element

The first bit of the building block is the SOAP Envelope.

The SOAP Envelope is used to encapsulate all of the necessary details of the SOAP messages, which are exchanged between the web service and the client application.

The SOAP envelope element is used to indicate the beginning and end of a SOAP message. This enables the client application which calls the web service to know when the SOAP message ends.

The following points can be noted on the SOAP envelope element.

Every SOAP message needs to have a root Envelope element. It is absolutely mandatory for SOAP message to have an envelope element.

Every Envelope element needs to have at least one soap body element.

If an Envelope element contains a header element, it must contain no more than one, and it must appear as the first child of the Envelope, before the body element.

The envelope changes when SOAP versions change.

A v1.1-compliant SOAP processor generates a fault upon receiving a message containing the v1.2 envelope namespace.

A v1.2-compliant SOAP processor generates a Version Mismatch fault if it receives a message that does not include the v1.2 envelope namespace.

Below is an SOAP API example of version 1.2 of the SOAP envelope element.

The Fault message

When a request is made to a SOAP web service, the response returned can be of either 2 forms which are a successful response or an error response. When a success is generated, the response from the server will always be a SOAP message. But if SOAP faults are generated, they are returned as “HTTP 500” errors.

The SOAP Fault message consists of the following elements.

SOAP-ENV:VersionMismatch – This is when an invalid namespace for the SOAP Envelope element is encountered.

SOAP-ENV:MustUnderstand – An immediate child element of the Header element, with the mustUnderstand attribute set to “1”, was not understood.

SOAP-ENV:Client – The message was incorrectly formed or contained incorrect information.

SOAP-ENV:Server – There was a problem with the server, so the message could not proceed.

Example for Fault Message

An example of a fault message is given below. The error is generated if the scenario wherein the client tries to use a method called TutorialID in the class GetTutorial.

The below fault message gets generated in the event that the method does not exist in the defined class.

Failed to locate method (GetTutorialID) in class (GetTutorial)


When you execute the above code, it will show the error like “Failed to locate method (GetTutorialID) in class (GetTutorial)”

SOAP Communication Model

All communication by SOAP is done via the HTTP protocol. Prior to SOAP, a lot of web services used the standard RPC (Remote Procedure Call) style for communication. This was the simplest type of communication, but it had a lot of limitations.

Now in this SOAP API tutorial, let’s consider the below diagram to see how this communication works. In this example, let’s assume the server hosts a web service which provided 2 methods as

GetEmployee – This would get all Employee details

SetEmployee – This would set the value of the details like employees dept, salary, etc. accordingly.

In the normal RPC style communication, the client would just call the methods in its request and send the required parameters to the server, and the server would then send the desired response.

The above communication model has the below serious limitations

Not Language Independent – The server hosting the methods would be in a particular programming language and normally the calls to the server would be in that programming language only.

Not the standard protocol – When a call is made to the remote procedure, the call is not carried out via the standard protocol. This was an issue since mostly all communication over the web had to be done via the HTTP protocol.

Firewalls – Since RPC calls do not go via the normal protocol, separate ports need to be open on the server to allow the client to communicate with the server. Normally all firewalls would block this sort of traffic, and a lot of configuration was generally required to ensure that this sort of communication between the client and the server would work.

To overcome all of the limitations cited above, SOAP would then use the below communication model

The client would format the information regarding the procedure call and any arguments into a SOAP message and sends it to the server as part of an HTTP request. This process of encapsulating the data into a SOAP message was known as Marshalling.

The server would then unwrap the message sent by the client, see what the client requested for and then send the appropriate response back to the client as a SOAP message. The practice of unwrapping a request sent by the client is known as Demarshalling.

Practical SOAP Example

Now in this SoapUI tutorial, let’s see a practical SOAP example,

Probably one of the best ways to see how SOAP messages get generated is to actually see a web service in action.

This topic will look at using the chúng tôi framework to build an ASMX web service. This type of web service supports both SOAP version 1.1 and version 1.2.

ASMX web services automatically generate the Web Service Definition Language (WSDL) document. This WSDL document is required by the calling client application so that the application knows what the web service is capable of doing.

In our example, we are going to create a simple web service, which will be used to return a string to the application which calls the web service.

This web service will be hosted in an chúng tôi web application. We will then invoke the web service and see the result that is returned by the web service.

Visual Studio will also show us what the SOAP message being passed between the web service and the calling application.

The first pre-requisite to setup our Web service application which can be done by following the below steps.

Please ensure that you have Visual Studio 2013 installed on your system for this example.

Step 2) In this step,

Ensure to first choose the C# web template of chúng tôi Web application. The project has to be of this type in order to create SOAP services project. By choosing this option, Visual Studio will then carry out the necessary steps to add required files which are required by any web-based application.

Give a name for your project which in our case has been given as webservice.asmx. Then ensure to give a location where the project files will be stored.

Once done you will see the project file created in your solution explorer in Visual Studio 2013.

Step 3) In this step,

We are going to add a Web service file to our project

Step 4) Add the following code to your Tutorial Service asmx file.

Code Explanation:

This line of code provides a name for your web service file. This is an important step because it gives way for the client application to call the web service via the name of the web service.

Normally a class file is used to encapsulate the functionality of a web service. So the class file will have the definition of all the web methods which will provide some functionality to the client application.

Here [WebMethod] is known as an attribute which describes a function. The subsequent step creates a function called “Guru99WebService”, but with the inclusion of this step of adding a [WebMethod] attribute makes sure that this method can be invoked by a client application. If this attribute is not in place, then the method can never be called by a client application.

Here we are defining a function called ‘Guru99WebService’ which will be used to return a string to the calling client application. This function is a web service which can be called by any client application.

We are using the return statement to return the string “This is a Guru99 Web service” to the client application.

If the code is executed successfully, the following Output will be shown when you run your code in the browser.


The output clearly shows that the name of our web service is “Guru99 Web Service” which is the result of giving a name for our web service.

The above output,

It clearly shows that by invoking the web method, the string “This is a Guru99 Web service” is returned.

Visual Studio also allows you to view the SOAP message request and response which is generated when the above web service is called.

The SOAP request which is generated when the web service is called is shown below.

Code Explanation:

The first part of the SOAP message is the envelope element which is what was discussed in the prior chapters. This is the encapsulating element which is present in every SOAP message.

The SOAP Body is the next element and contains the actual details of the SOAP message.

The third part is the element which specifies that we want to call the service which is called ‘Guru99WebService.’

Code Explanation:

The first part of the SOAP message is the envelope element which is what was discussed in the prior chapters. This is the encapsulating element which is present in every SOAP message.

The SOAP Body is the next element and contains the actual details of the SOAP message.

The interesting part you will see now is the ‘string’ attribute. This tells the client application that the web service being called returns an object of the type string. This is very useful because if the client application which otherwise would not know what the web service returns.


SOAP is a protocol which is used to interchange data between applications which are built on different programming languages.

SOAP is built upon the XML specification and works with the HTTP protocol. This makes it a perfect for usage within web applications.

The SOAP building blocks consist of a SOAP Message. Each SOAP message consists of an envelope element, a header, and a body element.

The envelope element is the mandatory element in the SOAP message and is used to encapsulate all of the data in the SOAP message.

The header element can be used to contain information such as authentication information or the definition of complex data types.

The body element is the main element which contains the definition of the web methods along with any parameter information if required.

Difference Between Memory Address Mode And Register Address Mode

We can define an address mode as the way in which the memory address of an operand is specified in a computer instruction. Address modes specify how the location of an operand in memory is represented in an instruction.

Operations are performed with the help of some data and the data is stored in a computer memory or registers. On the basis of that, there are two types of addressing modes namely, memory address mode and register address mode. The most basic difference between the two is that in the memory address mode, the address of the operand is present in the instruction itself; whereas in the register address mode, the address of the operand occurs in the register.

Read this article to learn more about memory address mode and register address mode and how they are different from each other.

What is a Memory Address Mode?

Memory addressing mode is the approach through which an instruction operand is determined. The information saved in the operation code is the operand value or the result. The role of the microprocessor is to implement a sequence of memory-saved instructions to implement a specific task. In memory addressing mode, we can access the static variables only.

Memory addressing modes can be subdivided into two types namely – direct memory addressing mode and indirect memory addressing mode. In the direct memory addressing mode, only a single memory is reference is required; whereas in the indirect memory addressing mode, two references are required. The first reference is required to get the effective address, while the second reference is required to read/write the data.

What is a Register Address Mode?

In the Register Address Mode, the information to be processed is accessible within the registers. Hence, the operation is implemented inside multiple registers of the microprocessor.

In the register addressing mode, an operand will be denoted and the register number will be provided in the instruction. The operand is then accessed with the help of register number given in the instruction. The register addressing mode can configure registers to a constant value, and this approach is quite a handful of techniques such as the immediate mode.

Now, let us see the comparison between Memory Address Mode and Register Address Mode.

Difference between Memory Address Mode and Register Address Mode

The following are the important differences between the memory address mode and the register address mode −


Memory Address Mode

Register Address Mode


In memory, the operand is accessible and its address is present in the instruction itself. This addressing method facilitates the memory address accurately including the Direct addressing method.

In the registers, an operand will be denoted and the register number will be provided in the instruction. The operand is retrieved with the register number demonstrate in the instruction including the Register method.


The memory address specified in the direction can display the location where the memory saves the successful strong.

The address of the operand occurs in the register. It can change the effective address from the content of the register specified in the instruction. The effective address cannot be an element of the register. This approach takes complete benefit of registers, including the indirect mode register.


The element of the list register is inserted to the location part that is provided in the direction. Record Mode can receive to a group whose parts are inserted away at increasing locations in memory, including Ordered Address Mode.

It can have a data table and our application requirements to approach all the values consecutively. It can find anything that improves the counter/register of the software that has a base address, including Auto Increment Mode.


The element of the program counter is used to the location bit of the guidance. In this approach, the location element of the direction is commonly a marked number that can be positive or negative such as relative tending to mode.

Register-based addressing mode is usually can configure registers to a constant value, and this approach is quite a handful of techniques such as the Immediate method.


The most significant difference between the two types of addressing modes is that the memory addressing mode relies on the memory address, whereas the register addressing mode relies on the register number.

What Is ‘Foo’ In Programming?

In Programming, “Foo” means nothing. It’s a placeholder value for when a programmer cannot come up with a better alternative. Value like “Foo” also highlights the fact that the choice of name is not the relevant part of the code example.

You see “Foo” a lot in programming tutorials and lecture slides. Also, if more than one name is necessary, the word “foo” is typically followed by “baz” or “bar”.

How to Use “Foo” in Programming?

When you are working on an example code with sample values, you may have noticed how hard it is to come up with a placeholder name.

This is why programmers typically use “Foo”. This dummy value is easy to remember and throw in the mix out of thin air. Another common dummy value that is widely used by programmers is “bar”. This is useful if you need more than one sample name.

Let’s see when “Foo” can be useful. Here is a Python example that demonstrates how to use F-strings with placeholder values:

val1 = "foo" val2 = "bar" print(f"Hello, {val1} {val2}!")


Hello, foo bar!

The whole point of this piece of code is to demonstrate how a Python concept works. Thus, the values it uses don’t matter. This is why the values “foo” and “bar” are used. Also, you don’t want to use names that would draw attention to them. When a programmer sees “foo” or “bar”, they instantly know those are dummy values one can ignore.

Why “Foo”?

The origin of the word “foo” is unclear.

Some suggest the origin of “Foo” comes from the 1930-1950 era in the Smokey Stover comic strip by Bill Holman. This is because the unexplained letters “F-O-O” comically appear on license plates, picture frames, and sandwich board signs.

Another theory for the words “foo” and “bar” is suggested to originate from the World War II era term “FUBAR” which stands for “F***ed up beyond all repair”. This would also explain why the word “bar” is usually used in conjunction with “foo”.

When Not to Use “Foo”?

The variable “foo” is useful when you practice coding skills and play with code examples. Also, if you are running a class, tutorial, or mentoring someone, coming up with short placeholder values like “foo” and “bar” can save you time.

But don’t use values like “foo” or “bar” in actual projects. This is because you want to keep it clean and readable all the time. If you have variables, classes, or methods called “foo” or “bar”, you will have no clue what they are supposed to do. This is especially true if you come back to your projects after a while. Make sure to use descriptive and easy-to-understand names when not playing or demonstrating!


Today you learned what “foo” means in programming.

To take home, “foo” is a dummy name or a placeholder value for the lack of a better name. “Foo” is commonly used in code samples and examples. When one placeholder is not enough, you commonly see the word “bar” used after “foo”.

Using values like “foo” or “bar” is useful when you are playing with code examples or demonstrating code to others. This way you don’t have to waste resources in coming up with a creative name.

Don’t use stupid values like “foo” or “bar” in your real projects, though. Instead, write clean code and give a clear and consistent meaning to variables and other values in your code.

Thanks for reading! Happy coding!

Further Reading

Want to learn more terms related to programming? Make sure to read Programming Glossary!

These Iphone 8 Pictures Show Display On In High Resolution

These iPhone 8 pictures show display on in high resolution

The collection of photos of the iPhone 8 we’re about to show you basically spoil the whole phone reveal. While we cannot be certain that we’re looking at the iPhone 8 – or whatever it’ll be called – until Apple reveals it, there’s good reason to believe that the design (as it stands now) is right on point with the images we’re about to show. Some of these images are renderings, some of these images are photos.

The images shown above and below are based on rumors and leaks and insider sources alike. Until Apple reveals the iPhone 8 itself, we won’t know exactly what we’re in for in a final physical device. Now that the device’s leaked looks have remained the same for a few days, the conceptual designs can be refined a bit – and be allowed to shine a bit more.

Early designs made by trigger-happy case makers often show smartphones as relatively ugly pieces of hardware. It’s not until the renderers like the ones you see here get ahold of the specs that the real magic begins. Here you’ll see the iPhone shine in a set of colors that are inching ever-closer to what Apple will very possibly present this September.

SEE ALSO: iPhone 8 Prototype shows display size VS iPhone and Galaxy S8

Below you’ll find a set of specifications for the iPhone 8, iPhone Pro, iPhone Plus, or iPhone Edition – or whatever you want to call it. Note that these specifications are NOT OFFICIAL, nor are they in any way final. Apple has yet to announce anything, and until they do, everything you see is based on rumors, tips, and insider sources.

Apple iPhone 8 (OLED MODEL) (Hypothetical)• Dimensions: 71 x 143 x 7.4mm• Display: 5.8-inch OLED display• Processor: Apple A11 chip• RAM: 4GB• Internal Storage: 64GB, 128GB• Camera: Dual 12 MP, (28mm, f/1.8, OIS & 56mm, f/2.8), phase detection autofocus, 2x optical zoom, quad-LED (dual tone) flash• Front-Camera: 7 MP, f/2.2, 32mm, 1080p@30fps, 720p@240fps, face detection, HDR, panorama• Battery: 3000 mAh, Wireless Charging• Connectivity: Lightning Connector, Bluetooth 5, Wi-Fi, 4G LTE, 3G, nanoSIM, NFC• Additional: Hidden Fingerprint Scanner, Iris Scanner, IP68 water/dust resistance

There’s still a question of whether the Touch ID sensor will be up front, embedded within the display, or around the back. If it will be around the back, the design will need to change once again. But again, remember that we’re dealing with leaks here – it’s not as if Apple itself has changed the design back and forth and back again – at least not publicly.

Compare this to the photos of the 3D printed piece of work above to see how extremely similar the art has gotten. Leaks and rumors have centered at this point – it’s difficult to see where else the final product might go.

The images you’ll see above first are photos from Twitter by Lewis from Unbox Therapy. He got the model from Venya Geskin, AKA Benjamin Geskin, who sells models of the iPhone 8 based on leaks and rumors for a cool $194.99 apiece. The second set comes from BGR and were made by the folks at Nodus. That includes the rotating 3D render, too.

Have a peek at the timeline below for additional information on when and with what the iPhone 8 will be appearing!

Update the detailed information about Address Resolution Protocol: What Is Arp Header In Networking on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!