Difference between add and append with transformer plugins

This seems like a naive question but I’ve never before tested this … with a plugin like request transformer, what is the difference in behavior between add a header and append a header?

Looking at the source code for the basic version of the plugin, it looks like add will do nothing if a header already exists (which makes sense), but append will add the additional value in the plugin config if the header is a “table”. What is a “table” in the context of an HTTP header?

My plugin configuration has "append":{"headers":["hdr: bar"],, but when I call the endpoint with:

curl -v http://localhost:8000/xform -H "hdr:foo" 

The request still only has the single header “hdr” with a value of “foo”. So I must be missing something very basic. :slightly_frowning_face: