Skids's Avatar

Skids

@skids13

[...]the only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time -Jack Kerouac

9,120
Followers
10,612
Following
717
Posts
27.11.2023
Joined
Posts Following

Latest posts by Skids @skids13

He’s INSANE

07.03.2026 21:52 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Saving an elephant from a treacherous sinkhole in Chakama area of Kilifi County in Kenya

TT: SheldrickTrust

07.03.2026 03:16 πŸ‘ 157 πŸ” 43 πŸ’¬ 8 πŸ“Œ 4
Video thumbnail

I made this in January 2024. Happy Women’s History Month. Volume up. No AI involved. ☝️ πŸ”„

05.03.2026 01:56 πŸ‘ 38 πŸ” 19 πŸ’¬ 10 πŸ“Œ 5
Post image

😑😑😑😑

05.03.2026 01:37 πŸ‘ 11739 πŸ” 4396 πŸ’¬ 347 πŸ“Œ 173
Discovering features and information via HTTP OPTIONS Say you have an API, and you want to communicate what sort of things a user can do on a specific endpoint. You can use external description formats like OpenAPI or JSON Schema, but sometimes it’s nice to also dynamically communicate this on the API itself. `OPTIONS` is the method used for that. You may know this HTTP method from CORS, but it’s general purpose is for clients to passively find out β€˜What can I do here?’. All HTTP clients typically support making `OPTIONS` request. For example with `fetch()`: const response = await fetch( 'https://example.org', {method: 'OPTIONS'} ); A basic `OPTIONS` response might might look like this: HTTP/1.1 204 No Content Date: Mon, 23 Sep 2024 02:57:38 GMT Server: KKachel/1.2 Allow: GET, PUT, POST, DELETE, OPTIONS Based on the `Allow` header you can quickly tell which HTTP methods are available at a given endpoint. Many web frameworks emit this automatically and generate the list of methods dynamically per route, so chances are that you get this one for free. To find out if your server does, try running the command below (with your URL!): curl -X OPTIONS http://localhost:3000/some/endpoint/ One nice thing you could do with the `Allow` header, is that you could also communicate access-control information on a very basic level. For example, you could only include `DELETE` and `PUT` if a user has write access to a resource. ## Accept and Accept-Encoding There’s server other standard headers for discovery. Here’s an example showing a few at once: HTTP/1.1 204 No Content Date: Mon, 23 Sep 2024 02:57:38 GMT Server: KKachel/1.2 Allow: GET, PUT, POST, DELETE, OPTIONS Accept: application/vnd.my-company-api+json, application/json, text/html Accept-Encoding: gzip,brotli,identity You may already be familiar with `Accept` and `Accept-Encoding` from HTTP requests, but they can also appear in responses. `Accept` in a response lets you tell the client which kind of mimetypes are available at an endpoint. I like adding `text/html` to every JSON api endpoint and making sure that API urls can be opened in browsers and shared between devs for easy debugging. The `Accept-Encoding` lets a client know in this case that they can compress their request bodies with either `gzip` or `brotli` (`identity` means no compression). ## Patching, posting and querying 3 other headers that can be used are `Accept-Patch`, `Accept-Post` and `Accept-Query`. These three headers are used to tell a client what content-types are available for the `PATCH`, `POST` and `QUERY` http methods respectively. For all of these headers, their values effectively dictate what valid values are for the `Content-Type` header when making the request. HTTP/1.1 204 No Content Date: Mon, 23 Sep 2024 02:57:38 GMT Server: KKachel/1.2 Allow: OPTIONS, QUERY, POST, PATCH Accept-Patch: application/json-patch+json, application/merge-patch+json Accept-Query: application/graphql Accept-Post: multipart/form-data, application/vnd.custom.rpc+json In the above response, the server indicates it supports both JSON Patch and JSON Merge Patch content-types in `PATCH` requests. It also suggests that GraphQL can be used via the `QUERY` method, and for `POST` it supports both standard file uploads and some custom JSON-based format. Typically you wouldn’t find all of these at the same endpoint, but I wanted to show a few examples together. ## Where’s PUT? Oddly, there’s no specific header for `PUT` requests. Arguably you could say that `GET` and `PUT` are symmetrical, so perhaps the `Accept` header kind of extends to both. But the spec is not clear on this. I think the actual reality is that `Accept-Patch` was the first header in this category that really clearly defined this as a means of feature discovery on `OPTIONS`. `Accept-Post` and `Accept-Query` followed suit. I think `Accept-Patch` in `OPTIONS` was modelled after in-the-wild usage of `Accept` in `OPTIONS`, even though the HTTP specific doesn’t super clearly define this. If I’m wrong with my interpretation here, I would love to know! _Aside: If you’re wondering about`DELETE`, `DELETE` should never have a body, so all a user would need to know is _can_ they delete, which you can see in the `Allow` header. If this is new to you to, read my other article about `GET` request bodies. Most of the information there is applicable to `DELETE` as well. _ ## Linking to documentation The `OPTIONS` response is also a great place to tell users where to find additional documentation. In the below example, I included both a machine-readable link to a documentation site, a link to an OpenAPI definition, and a message intended for humans in the response body: HTTP/1.1 200 OK Date: Mon, 23 Sep 2024 04:45:38 GMT Allow: GET, QUERY, OPTIONS Link: <https://docs.example.org/api/some-endpoint>; rel="service-doc" Link: <https://api.example.org/openapi.yml>; rel="service-desc" type="application/openapi+yaml" Content-Type: text/plain Hey there! Thanks for checking out this API. You can find the docs for this specific endpoint at: https://docs.example.org/api/some-endpoint Cheers, The dev team I recommend keeping the response body as mostly informal and minimal any real information should probably just live on its own URL and be linked to. I used the `service-doc` and `service-desc` link relationships here, but you can of course use any of the IANA link relationship types here or a custom one. Also see the Web linking spec for more info. ## Obscure uses ### WebDAV usage WebDAV, CalDAV and CardDAV also use OPTIONS for feature discovery. For example: HTTP/1.1 204 No Content Date: Mon, 23 Sep 2024 05:01:50 GMT Allow: GET, PROPFIND, ACL, PROPPATCH, MKCOL, LOCK, UNLOCK DAV: 1, 2, 3, access-control, addressbook, calendar-access ### The server-wide asterisk request Normally HTTP requests are made to a path on the server, and the first line looks a bit like the following in HTTP/1.1: GET /path HTTP/1.1 But, there are a few other β€œrequest line” formats that are rarely used. One of them lets you discover features available on an entire server, using the asterisk: OPTIONS * HTTP/1.1 The asterisk here is not a path. Normally asterisks aren’t even allowed in URIs. Many HTTP clients (including `fetch()`) don’t even support this request. Classic webservers like Apache and Nginx should support this. To try it out, use CURL curl -vX OPTIONS --request-target '*' http://example.org ## Final notes If you have a reason to allow clients to discover features on an endpoint, consider using `OPTIONS` instead of a proprietary approach! As you can see in many of these examples, it’s especially useful if you use mimetypes well. If you have questions, other novel uses of `OPTIONS` or other ideas around feature discovery, you can respond via: * This post on Mastodon * This post on Bluesky * Via the Webmention protocol!
16.10.2024 15:56 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
The Drey Dossier (@thedreydossier) Something happened tonight. And I have a bad feeling it’s going to happen again.

substack.com/@thedreydoss...

04.03.2026 15:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail
04.03.2026 14:28 πŸ‘ 14 πŸ” 9 πŸ’¬ 0 πŸ“Œ 0
Preview
Donate to Support Sheri's Ranch Workers Terminated for Unionizing!, organized by Molly Wylder Welcome to the GoFundMe for the United Brothel Workers (UBW) (A … Molly Wylder needs your support for Support Sheri's Ranch Workers Terminated for Unionizing!

Sheri’s Ranch responded to the petition for union recognition by firing workers Jupiter Jetson, Molly Wylder, Paloma Karr, Adalind Gray, Genevieve Dahl, and Gwen Bunny.

The union will be fighting their unlawful terminations, but for now, they need our support: www.gofundme.com/f/support-sh...

26.02.2026 18:39 πŸ‘ 731 πŸ” 287 πŸ’¬ 7 πŸ“Œ 18
Post image

I'll save you some time on the State of the Union:
β€’ It's Joe Biden's fault
β€’ Transgender for everyone
β€’ Prescription drugs down 1500%
β€’ Tariffs are making us rich
β€’ Border invasion
β€’ We are the hottest country in the world
β€’ Canada = 51st state
β€’ Some gibberish

24.02.2026 15:19 πŸ‘ 14 πŸ” 7 πŸ’¬ 5 πŸ“Œ 0
Trump's job approval ,margin minus 47

Trump's job approval ,margin minus 47

From @maddow.bsky.social

-47

24.02.2026 03:39 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Post image
24.02.2026 04:17 πŸ‘ 3 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

The only SOTU I’m looking for is the one where this criminal pedophile is arrested as well as Impeached convicted and removed

23.02.2026 18:39 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
The Most Dangerous Corporation in America?
The Most Dangerous Corporation in America? The AI surveillance state is real β€” and it's being built by Palantir.

Billions of your tax dollars are going to Palantir β€” and the police state it's helping Trump build could soon be used against you.

23.02.2026 01:00 πŸ‘ 2379 πŸ” 1221 πŸ’¬ 91 πŸ“Œ 93

Boycott it

23.02.2026 02:24 πŸ‘ 5 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image
21.02.2026 02:15 πŸ‘ 9 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
Preview
Truth Matters (@politicsusa46) This is why I love the arts. πŸŽ₯ TikTok - vm.tiktok.com/ZNRPJnVJd/

substack.com/@politicsusa...

17.02.2026 23:06 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

I prefer β€œdear leader” or β€œ1st Pedophile β€œ

14.02.2026 18:45 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

They spent years getting us all on REAL ID with our drivers licenses. I had to provide this documentation and I don’t need to show it to prove it when I vote. they mail me my ballot . This is a way to to eliminate mail in ballots and disenfranchise voters

12.02.2026 22:21 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

When they lack credible arguments, they resort to gaslighting. Aka β€œYou have Trump Derangement Syndrome” which isn’t a REAL thing

11.02.2026 18:30 πŸ‘ 7 πŸ” 4 πŸ’¬ 1 πŸ“Œ 0

Do we use poly market to bet on how quickly Dear leader comments on how sexy Pam is over her actual performance before Congress? Did Dear leaders former executive assistant pass her the knee pads?

11.02.2026 18:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Impeach Convict and Remove Pam Bondi.
Disgusting behavior Stockholm syndrome likely

11.02.2026 17:58 πŸ‘ 6 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

We are living in the age of stupid

11.02.2026 03:11 πŸ‘ 2 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

This wasn’t just a halftime show.
It was history. Resistance. Truth.

Colonialism. Gentrification. Exploitation.
The banned flag. The broken power grid.
A call for sovereignty.

Bad Bunny said it clearly:
Seguimos aquΓ­. πŸ‡΅πŸ‡·

#BadBunny #SheShed #Voices4Victory
www.instagram.com/reel/DUi5tO0...

09.02.2026 19:31 πŸ‘ 369 πŸ” 160 πŸ’¬ 16 πŸ“Œ 4

He did say β€œexceptionallyβ€œ πŸ˜‚

08.02.2026 20:47 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

HAPPY BAD BUNNY DAY, AMERICA. ENJOY!!! β€”GOVERNOR GCN

07.02.2026 20:15 πŸ‘ 3094 πŸ” 801 πŸ’¬ 102 πŸ“Œ 121

Trump needs to be impeached immediately!

06.02.2026 18:27 πŸ‘ 392 πŸ” 90 πŸ’¬ 29 πŸ“Œ 3
smiling, good looking couple seated on a porch (soft focus garden behind them) elegantly dressed, the lady in a sleeveless dress, patterned top, banded at the waist with a softly pleated long white skirt, the man wearing a light colored suit with white shirt and striped tie - body language relaxed and intimate

smiling, good looking couple seated on a porch (soft focus garden behind them) elegantly dressed, the lady in a sleeveless dress, patterned top, banded at the waist with a softly pleated long white skirt, the man wearing a light colored suit with white shirt and striped tie - body language relaxed and intimate

Portrait of Michelle
and Barack Obama

former First Lady and
President of the US

πŸ“· Pete Souza

06.02.2026 21:03 πŸ‘ 12420 πŸ” 1979 πŸ’¬ 5 πŸ“Œ 0

#caught
Impeach
Convict & remove

#heDoesntRepresentUs

07.02.2026 03:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Just wanted to stop by and say Donald Trump disgusts me.

He’s an embarrassing racist who shames the office everyday and I am so disappointed my fellow Americans gave this travesty of an individual power yet again.

07.02.2026 03:07 πŸ‘ 26 πŸ” 3 πŸ’¬ 2 πŸ“Œ 0
Post image
04.02.2026 05:12 πŸ‘ 777 πŸ” 264 πŸ’¬ 19 πŸ“Œ 10