There are currently three different ways of Serving out Tiles:
I do know that XYZ is now the most popular one, and is used by services like Google, Mapbox, OSM and many others.
What is the Technical difference between the three?
WMS is a protocol defined by the OGC for requesting rendered map images for arbitrary areas. Clients can make requests to it in a tiled pattern if they wish.
WMS-C is an extension for WMS created by OSGeo that adds metadata to the capabilities document letting the client know where to make requests so they line up with service's tiles. A WMS-C service may reject requests that are not aligned to its tile grid.
TMS is a protocol created by OSGeo that allows tiles to be requested using integer indices. It also provides metadata for discovery and configuration. It can be implemented as a set of tile images and metadata files sitting in a static file system. Y axis goes up from the bottom.
WMTS is a protocol created by the OGC that allows tiles to be requested using integer indices. It also provides metadata for discovery and configuration. Y axis goes down from the top.
"XYZ" is the term we use for various ad hoc schemes for serving tiles, often from a static file system. There's no standard and no mechanism for metadata. There's no fixed standard for Y axis direction although down from the top is most common. Google did something for their own purposes, and other people sort of copied it. A particular XYZ client and server may or may not be able to work together. XYZ Clients can sometimes also be made to work with TMS or WMTS services.
There are also a few less used protocols like the Bing "quadkey" protocol or the Google Mobile protocol which flips the zoom level order.
I generally recommend WMTS as it is the only integer index tile protocol backed by a widely recognized standards body.
The three links above explain each service in detail.
TMS: As far as I understand it, TMS is the most basic. The Tiled Web Service provides access to resources, in particular, to rendered cartographic tiles at fixed scales. Access to these resources is provided via a "REST" interface, starting with a root resource describing available layers, then map resources with a set of scales, then scales holding sets of tiles.
WMTS: Introduces standards for ease of working with multiple tile services simultaneously. This profile has two objectives: to facilitate the combination of layers coming from different WMTS services and to make tile client applications easier to implement by imposing a common TileMatrixSet.
XYZ: Adds the following standards to WMTS standards - An X and Y numbering scheme; PNG images for tiles; Images are served through a REST API, with a URL like http://.../Z/X/Y.png, where Z is the zoom level, and X and Y identify the tile.