HTTP PUT: Idempotent Update, Not a Non-Idempotent Operation

200-301 By islever Editorial Last updated

Describe characteristics of REST-based APIs (authentication types, CRUD, HTTP verbs, and data encoding)

Short answer

A PUT is the idempotent HTTP verb for updating a server-side resource, not the read-only GET used to display a website or a non-idempotent POST-style operation.

Question

When is the PUT method used within HTTP?
  1. to update a DNS server Correct Answer
  2. when a nonidempotent operation is needed
  3. to display a web site
  4. when a read-only operation is required

Key Takeaways

The exam tests REST HTTP verb semantics—PUT updates and is idempotent, GET reads, POST creates or submits non-idempotently—and the trap is treating PUT as non-idempotent because it changes server state.

HTTP PUT is an idempotent REST verb used to update or replace a server-side resource; on this CCNA 200-301 question, A is the only option describing an update, while B confuses PUT with non-idempotent POST.

Common mistake: The most plausible wrong answer is B: PUT does modify server state, so it feels non-idempotent, but repeating the same PUT with the same body leaves the target resource in the same state, whereas POST is the typical non-idempotent verb.

Expert Analysis

Why B is the seductive trap Option B sounds technical: PUT changes data, so a candidate may reason that repeating it could cause extra effects. Comments defending B describe PUT as a way to "update or create a resource" and then attach the non-idempotent label, but that is exactly where the reasoning breaks. HTTP semantics define PUT as idempotent: sending the same PUT with the same representation to the same URI should leave the target resource in the same state as one request. POST is the usual non-idempotent verb for creating or submitting data. B therefore fails on the one property it asserts.

What the other options reveal C and D describe read-only retrieval: a browser displays a site with GET, and read-only operations are GET's domain, not PUT's. That leaves A, "to update a DNS server." The wording is imperfect—strictly, PUT updates an HTTP resource, and DNS zone updates normally use DNS protocols or a provider's REST API—but A is the only option that describes an update rather than a read or a non-idempotent operation. Comments in the thread flag the DNS phrasing as awkward, yet the option-selection logic remains: eliminate the options that contradict the verb definition.

Exam doctrine and verdict For CCNA 200-301 objective 6.5, know the REST/HTTP verb mapping: GET reads, POST creates/submits and is non-idempotent, PUT updates/replaces and is idempotent, DELETE removes. Option A is the correct answer in this item. Do not let a real-world detail about DNS APIs override the tested distinction between idempotent update and non-idempotent creation; also do not accept B merely because PUT modifies server state.

Official Reference

These links open the official vendor documentation in a new tab.

Exam Strategy

For REST verb questions, write a quick mapping before reading options: GET=read, POST=create/submit and non-idempotent, PUT=update/replace and idempotent, DELETE=remove. Eliminate any option that contradicts one core property—here, B dies because PUT is idempotent, while C and D describe GET. If one surviving option names an odd resource such as a DNS server, choose it only after the other three violate a verb definition, and treat the item as poorly worded rather than redefining PUT.

Frequently Asked Questions

Is HTTP PUT idempotent, and why does that make option B wrong?

Yes. Repeating the same PUT request with the same body leaves the target resource in the same state, whereas POST is the usual non-idempotent create or submit verb. B contradicts PUT's core property.

Why is A accepted when it says 'DNS server' instead of 'resource'?

Strictly, PUT updates an HTTP resource, not DNS zone data directly. A is the least-wrong choice because it describes an update, while B says non-idempotent and C and D describe read-only GET behavior.

Which HTTP method displays a website?

GET is the read-only method browsers use to retrieve pages and display websites, so C and D do not describe PUT.

More 200-301 FAQ →

Discussion 8 contributions

Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.

From public community threads 8

  1. oatmealturkey 👍 11 Answered A
    Please correct. "Standard REST methods are supported on the API, which includes POST, GET, PUT, and DELETE operations through HTTP. The PUT methods are idempotent, meaning that there is no additional effect if they are called more than once with the same input parameters. The GET method is nullipotent, meaning that it can be called zero or more times without making any changes (or that it is a read-only operation)." https://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/aci_multi-site/sw/1x/rest_api_config/b_Cisco_ACI_Multi-Site_REST_Configuration_Guide/b_Cisco_ACI_Multi-Site_REST_Config_Guide_chapter_01.pdf
  2. Ciscoman021 👍 5 Answered A
    The PUT method is used within HTTP when a client wants to update an existing resource on the server. Therefore, the correct option is A: to update a resource on a server. The PUT method is a part of the HTTP protocol that allows a client to update or replace a resource on the server with a new version. It is an idempotent operation, which means that making multiple identical requests has the same effect as making a single request. The other options are incorrect: B. The PUT method is not used for non-idempotent operations; it is used for idempotent operations. C. The GET method is typically used to display a web site. D. The GET method is used for read-only operations, not the PUT method.
  3. Rick3390 👍 2
    But B says: "when a nonidempotent operation is needed"... but mate, PUT is actually idempotent. It seams to me that you just use chatgpt for this answer without argue with it. Try to tell to chatgpt that PUT is idempotent and then you will see chatgpt correct him self and give you the right option. If we want to talk about the fact that DNS uses a specific DNS protocol to updates, let's talk about it, but for the context of these options and strictly speaking about the HTTP protocol, A would be the most appropriate choice.
  4. Rynurr 👍 2 Answered A
    "B" is incorrect > NON-IDEMPOTENT: If an operation always causes a change in state, like POSTing the same message to a user over and over, resulting in a new message sent and stored in the database every time. Must be "A".
  5. raptuz 👍 1 Answered B
    The correct answer is B. when a nonidempotent operation is needed. The PUT method in HTTP is used to update or create a resource on the server. It is typically used for idempotent operations, meaning that making the same request multiple times should have the same result as making it once. However, it's important to note that the PUT method is used for updating resources, not read-only operations or displaying web pages. Option A is incorrect because updating a DNS server typically involves administrative actions and may use different protocols. Option C is incorrect because displaying a web page is a read operation and would usually involve the GET method. Option D is incorrect because the PUT method is not used for read-only operations.
Show 3 more comments
  1. Allan Hsu 👍 1 Answered A
    Guys It is indeed not a HTTP request to update DNS server but keep in mind in real world where cloud platform exists with DNS service provided you can update a DNS server using their REST API PUT requests for example AWS. Out of all options only A seems possible since B option is incorrect (PUT is idempotent) C is GET D is read only so GET Just hope this question doesn't appear on the exam because I am going to pick A banking on it's not a typo on B.
  2. Vikramaditya_J 👍 1 Answered A
    The PUT method in HTTP (Hypertext Transfer Protocol) is used to update a resource on the server. Non-idempotent methods are those that can have different outcomes when called multiple times with the same input parameters. Examples of non-idempotent methods include POST, PATCH, and non-idempotent PUT requests. Common non-idempotent methods: POST, PATCH, CONNECT. PUT isn't a non-idempotent methods.
  3. Kafka_Tamura 👍 1
    guys you're gonna put a http request on a dns server ? the question seems incorect, i think it's b

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Practice All 200-301 Questions

Access 220 questions with complete answers and detailed explanations.

View Full 200-301 Practice Test →

← Back to 200-301 Study Guide