So how do we send data to the server? Well we saw one method of doing this, and that was to use query parameters in the URL that we were sending to the server. And the server can extract the key value pairs that we're sending in that request from the URL. But, query parameters don't always make sense as the mechanism for sending data to the server. So there's another mechanism that we can use to send data to the server and that's through sending data in the body that we've talked about. So when we send a, a request message, we can associate a body with it that we would like to place data into, so we can have a body. And as we saw, we can have different mime types for that body. But let's talk about the two most common mime types that we're going to see in bodies of messages that we're sending to the server. If you've ever gone and filled out a form on the internet, you've probably used one of these body types, and that's the URL encoded form body type. And so what that is is URL encoded is a body mime type that tells the server just like we did in the query parameters, we're going to have a set of key value pairs that are encoded exactly the same way as we would put them into the URL. But instead of putting those parameters into the query parameter part of the URL, we're instead going to take those key value pairs and put them into the body. So we can have URL encoded form data, or data key value pairs, that we're sending to the server. There's a second type of mind type that we often see for bodies and if you ever uploaded a file through a forum in your browser, you've probably used this mime type and that's multipart enc, encoded data. And, what multipart does is rather than using the typical URL encoding, where we see a key equals a value ampersand another key equals a value, etc and we have all of the characters escape. Instead, multipart has a series of part separators that are expressed. And then we'll have data like byte data for the different parts. So basically, we can build a message and we can express the different parts of that message using the multipart encodings. The body is broken into a series of parts, each of which can have its own identifier, so essentially its own key, and also its own mime type, so that we can interpret what to do with that part. So multipart is typically used for uploading data like images, or large amounts of data to the server. Whereas URL encoded is technically used for sending simple key value pair sets to the data. Now you may be asking yourselves, well when should I use one or the other? What is the rule? Well there's, the the basic thing you need to consider is how much data you're sending to the server. Multipart is good for sending a lot of data to the server. If you're sending a file to the server, you're uploading some large chunk if binary data. Multpart is the appropriate way to do that. If you're sending a series of simple key values pairs. URL encoded is the way to do it. And one of the reasons for that is that URL encoded is going to be more efficient, more space efficient in the size of the message for small amounts of data than a multipart. And that's, and the reason is is that if you have a series of short key value pairs. In a multipart message, each one of those key value pairs has to be broken up and pre-fixed by a specific, message indicator in the multipart message. And when you add up all of the overhead of this various formatting rules for multipart for small sets of key value pairs, it's less efficient than a URL encoded message. However, if you're sending a lot of data, multipart is a much more efficient way of doing it than URL encoded, because the URL encoding rules require a transformation of that data so that it meets the URL encoding rules which ends up increasing the amount of data that we're actually sending to the server in order to safely express what we're sending to the server in a URL encoded way. So, we can think of this for lots of data or binary data like files. And we can think of this as, you know, small amounts of data. Or simple key value pairs. And when you're sending request messages, where you're sending data to server, depending on how much data you're sending, and sort of the characteristics of that data, you will choose a content type that's either URL encoded typically or multipart. Now, when we get further into the course, we'll see that there's another type that commonly gets used, and is popular now, called application/JSON. But we'll talk about that type when we get to it later in the course.