Authentification web et GET

je remet le code au complet ainsi que le retour sur le moniteur série:

#include <SPI.h>
#include <Ethernet.h>

// Entrez une adresse MAC et une adresse IP pour votre contrôleur ci-dessous.
// L'adresse IP est :
byte mac[] = { 
  0xDE, 0xAD, 0xAF, 0xBA, 0xEE, 0xDF };
IPAddress ip(192,168,0,200);
String readString;

// Initialiser la bibliothèque du serveur Ethernet
// avec l'adresse IP et le port que vous souhaitez utiliser
EthernetServer server(2856);

void setup() {
  Serial.begin(9600);

  // démarrez la connexion Ethernet et le serveur :
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());

  pinMode(7, OUTPUT); digitalWrite(7, HIGH);

}
 

char linebuf[100];
int charcount=0;
boolean authentificated=false;

void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("Nouvelle connexion client");
    memset(linebuf,0,sizeof(linebuf));
    charcount=0;

    authentificated=false;   // authentifié = faux
    // une requête http se termine par une ligne vide
    boolean currentLineIsBlank = true;    //la ligne actuelle est vide = vrai
    while (client.connected()) {    // boucle infini -> tant que le client et connecté
        if (client.available()) {    // et queleclient est disponible
        char c = client.read();
           linebuf[charcount]=c;
        if (charcount<sizeof(linebuf)) charcount++;
        
        Serial.write(c);
              
        // si vous êtes arrivé à la fin de la ligne (reçu un saut de ligne
        // caractère) et la ligne est vide, la requête http est terminée,
        // vous pouvez donc envoyer une réponse
        if (c == '\n' && currentLineIsBlank) {
          if (authentificated){
            SendOKpage(client);
              Serial.println(F("bien identifié"));
            if (strstr(linebuf,"/?lum=on") >0){
              Serial.println(F("On allume la led"));
                   digitalWrite(7, LOW);
                    }

             if (strstr(linebuf,"/?lum=off") >0){
              Serial.println(F("On eteint la led"));
                  digitalWrite(7, HIGH);
                    }
          }
          else
            SendAuthentificationpage(client);
          break;
        }
        
        if (c == '\n') {
          // tu commences une nouvelle ligne
          currentLineIsBlank = true;    //la ligne actuelle est vide = vrai
          if (strstr(linebuf,"Authorization: Basic")>0 && strstr(linebuf,"dGVzdDpUZXN0")>0) // Encryptage "ident:pass" via https://www.base64encode.org/  {forme ident:pas}
            Serial.println(F("On verifie le id et pass"));
            authentificated=true;
          memset(linebuf,0,sizeof(linebuf));
          charcount=0;

        } 
        else if (c != '\r') {
          // vous avez un caractère sur la ligne actuelle
          currentLineIsBlank = false;
        //  Serial.println(F("arrivée de nouvelle donnee"));
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
   
    Serial.println("client disonnected");
    Serial.println(F(""));

  }
}

void SendOKpage(EthernetClient &client)
{
          // envoyer un en-tête de réponse http standard
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");

          client.println(F("<body style=\"color: #ffffff; background-color: #0c273d;\">"));
          client.println(F("<style> #Bouton_1{background-color:red; width:150px; height:100px;} #Bouton_2{width:150px; height:100px; font size:9; } #Bouton_3{background-color:#ED2FD7;}</style>"));
          
          client.println(F("<br />"));
          client.println(F("<a href=\"/?lum=on\"\"><input type=button value=ON id='Bouton_2' ></a>"));
          client.println(F("<a href=\"/?lum=off\"\"><input type=button value=OFF id='Bouton_2' ></a>"));
          client.println(F("<br />"));
          client.println(F("<br />"));
          client.print(F("Etat de l'Eclairage : "));
          if(digitalRead(7) == HIGH){
            client.println(F("<font color=#9E9F6C>"));
            client.print(F(" ETEINT"));
            client.println(F("</font>"));
            client.println(F("<br />"));
          }
          if(digitalRead(7) == LOW){
            client.println(F("<font color=#F6FA04>"));
            client.print(F(" ALLUME"));
            client.println(F("</font>"));
            client.println(F("<br />"));
          }
          client.println(F("<br />"));

          client.println("</html>");
}

void SendAuthentificationpage(EthernetClient &client)
{
          client.println("HTTP/1.1 401 Authorization Required");
         
          client.println("WWW-Authenticate: Basic realm=\"Secure Area\"");
           
          client.println("Content-Type: text/html");
          
          client.println("Connnection: close");
          client.println(F("<body style=\"color: #ffffff; background-color: #0c273d;\">"));
          client.println();
          client.println("<!DOCTYPE HTML>");
          
          client.println("<HTML>  <HEAD>   <TITLE>Error</TITLE>");
          client.println(" </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML>");
}

Le moniteur série reçoit bien l'URL mais la commande n'est pas traité, il ne rentre pas dans la boucle IF de l'allumage de la led et de plus la commande GET de ma page web ne vide pas la chaine de caractères en réponse, pour moi l'URL devrais redevenir :
http://192.168.0.200:2856/

or elle reste http://192.168.0.200:2856/?lum=on

moniteur série:

18:09:40.729 -> Nouvelle connexion client
18:09:40.764 -> GET /?lum=on HTTP/1.1
18:09:40.798 -> Host: 192.168.0.200:2856
18:09:40.833 -> Connection: keep-alive
18:09:40.833 -> Authorization: Basic dGVzdDpUZXN0
18:09:40.866 -> On verifie le id et pass
18:09:40.900 -> Upgrade-Insecure-Requests: 1
18:09:40.934 -> User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
18:09:41.071 -> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
18:09:41.207 -> Referer: http://192.168.0.200:2856/?lum=on
18:09:41.274 -> Accept-Encoding: gzip, deflate
18:09:41.309 -> Accept-Language: fr-FR,fr;q=0.9
18:09:41.309 ->
18:09:41.378 -> bien identifié
18:09:41.411 -> client disonnected
18:09:41.411 ->
18:09:41.411 -> Nouvelle connexion client
18:09:41.446 -> GET /favicon.ico HTTP/1.1
18:09:41.480 -> Host: 192.168.0.200:2856
18:09:41.514 -> Connection: keep-alive
18:09:41.549 -> Authorization: Basic dGVzdDpUZXN0
18:09:41.582 -> On verifie le id et pass
18:09:41.582 -> User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
18:09:41.720 -> Accept: image/avif,image/webp,image/apng,image/svg+xml,image/,/*;q=0.8
18:09:41.786 -> Referer: http://192.168.0.200:2856/?lum=on
18:09:41.855 -> Accept-Encoding: gzip, deflate
18:09:41.888 -> Accept-Language: fr-FR,fr;q=0.9
18:09:41.922 ->
18:09:41.958 -> bien identifié
18:09:41.991 -> client disonnected
18:09:42.025 ->