Parsing GET Variables

The strtok() function takes, as the first argument, a pointer to a string to parse. If you pass NULL as the pointer to the string to parse, strrok() keeps parsing the string it was parsing. If you pass it other than NULL, it starts parsing the new string.

Does the while loop extract every name and value out of "token" and in this loop i have with the values
to start other programms?

No, it extracts every name and every matching value out of data.

If data contains "GET / mode=blink&rate=30&color=yellow", token points to "GET / ". Then, the call to strtok() with NULL as the first argument will continue parsing "mode=blink&rate=30&color=yellow", and name will point to "mode". Then, strtok() will parse "blink&rate=30&color=yellow", and value will point to "blink".

On the next iteration of the while loop, name will point to "color" and value will point to "yellow".