Para PHP no tiene sentido:
Código PHP:
<html>
<head>
</head>
<body>
<?
session_start();
// por aquí PHP
?>
</body>
</html>
PHP se ejecuta -primero- en el servidor y lo que "genera" es una salida al "cliente" .. Esa salida en tu caso es "HTML/javscirpt/etc" .. Si piensas en cómo trabaja PHP en lugar de "incrustrar" PHP sobre HTML te irá mejor para entender como funcionan las funciones tipo header() .. session_Start() y algunas más que entregan sus própias cabeceras HTTP antes de lo que tu puedas generar con tu HTML/javascript/etc ...
Lo correcto sería:
Código PHP:
<?
session_start();
?>
<html>
<head>
</head>
<body>
<? // por aquí más PHP que pueda generar HTML dinámico entre otras cosas. ?>
</body>
</html>
Un saludo,