pro_static_site.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <?php
  2. $title = "Site";
  3. include("../header.php");
  4. ?>
  5. <!-- Main -->
  6. <main role="main" class="container">
  7. <div class="focus-center">
  8. <h1>
  9. Mon site internet
  10. </h1>
  11. <img src="https://img.icons8.com/color/96/000000/html-5.png" alt="html-5 flat icon">
  12. <h2>
  13. Le site sur lequel vous surfez actuellement ...
  14. </h2>
  15. <p class="lead">
  16. Et soyez heureux, ce site est garanti sans cookie !
  17. </p>
  18. </div>
  19. <!-- Content -->
  20. <h3>
  21. <img src="https://img.icons8.com/color/48/000000/term.png" alt="V">
  22. Introduction
  23. </h3>
  24. <p>
  25. J'ai longtemps codé en C++ afin de faire des jeux-vidéo. Mais après avoir gagné un Raspberry Pi lors d'un
  26. hackaton, je trouvais intéressant d'apprendre et d'appliquer quelques technologies du web afin de les appliquer
  27. à un projet concret.
  28. </p>
  29. <p>
  30. Afin de m'entraîner un peu au développement et au déploiement d'un site web, j'ai donc décidé de réaliser mon
  31. propre site Internet.
  32. </p>
  33. <p>
  34. De plus, c'est toujours utile d'avoir un site Internet de présentation afin de se faire connaître par des
  35. employeurs, collègues et connaissances. Et c'est quand même plus crédible pour un développeur informatique de le
  36. réaliser lui-même ...
  37. </p>
  38. <p>
  39. J'ai essayé de rendre cet <strong>article concis et accessible à tous publics</strong>. Peu importe vos
  40. connaissances en informatique, vous avez sans doute la capacité de le comprendre. N'hésitez donc pas à
  41. continuer votre lecture ...
  42. </p>
  43. <p>
  44. C'est parti, voici un petit récapitulatif de ce qui se cache derrière ce que vous avez actuellement sur votre
  45. écran.
  46. </p>
  47. <h3>
  48. <img src="https://img.icons8.com/color/48/000000/bootstrap.png" alt="V">
  49. Bootstrap : une affaire de style
  50. </h3>
  51. <p>
  52. Ce site a été codé en HTML. Pour voir le code source, il vous suffit d'utiliser la combinaison de touches <code>Ctrl</code>+<code>u</code>
  53. sous le navigateur Firefox. Et oui, il ne m'a fallu qu'un simple éditeur de texte pour arriver à ce résultat. Un
  54. éditeur de texte un peu tuné, certes. J'ai d'abord utilisé
  55. <a href="https://www.jetbrains.com/webstorm/">WebStorm</a>, puis
  56. <a href="https://www.sublimetext.com/">SublimeText</a>, plus léger, puis
  57. <a href="https://www.vim.org/">Vim</a>, encore plus léger.
  58. </p>
  59. <p>
  60. Afin de mettre un peu de style à l'information brute (celle contenue dans le HTML), j'ai utilisé un template CSS
  61. qui s'appelle Bootstrap. Cette technologie a été développée par Twitter, et est parfois aussi appelé en
  62. conséquence Twitter Bootstrap. N'hésitez pas à faire un tour sur le
  63. <a href="https://getbootstrap.com/">site officiel de Bootstrap</a>
  64. pour savoir de quoi il retourne.
  65. </p>
  66. <p>
  67. Pour les néophytes, vous devez savoir que CSS est un langage qui permet de définir des feuilles de style. Cela
  68. permet de mettre en forme tout ce que vous trouvez sur cette page : la barre de navigation horizontale verte, la
  69. police, la mise en page, les barres vertes sous les titres ...
  70. </p>
  71. <p>
  72. Afin de me faciliter la tâche, j'ai utilisé un template CSS. C'est un ensemble de feuilles de style déjà écrites
  73. qui me permet de ne pas tout refaire de zéro. La barre de navigation, par exemple, existait déjà sous cette
  74. forme. Je n'ai fait que modifier des détails, comme la couleur et les titres des liens.
  75. </p>
  76. <p>
  77. Il faut savoir que Bootstrap est un framework très connu, et donc utilisé dans de nombreux sites web. On peut
  78. citer BlaBlaCar, par exemple, le fameux site de covoiturage. À cause de cette mode, et malgré la
  79. personnalisation assurée par les développeurs, les sites se ressemblent (forme des boutons, des onglets). On
  80. peut donc critiquer le fait que je l'utilise : développer son propre site, c'est devoir se démarquer et montrer
  81. son originalité. Mais c'est peut-être aussi se tenir au courant des technologies actuelles et de les mettre en
  82. pratique ...
  83. </p>
  84. <p>
  85. Si vous voulez voir à quoi ressemble le template que j'ai utilisé comme base de mon travail, il est disponible
  86. sur le site officiel de Bootstrap :
  87. <a href="https://getbootstrap.com/docs/4.2/examples/starter-template/">Starter Template by Bootstrap</a>.
  88. </p>
  89. <h3>
  90. <img src="https://img.icons8.com/color/48/000000/raspberry-pi.png" alt="V">
  91. Raspberry Pi : un petit ordinateur
  92. </h3>
  93. <p>
  94. C'est bien de coder son site. Mais pour qu'il soit visible par tous les utilsateurs d'Internet, il faut un
  95. serveur web ...
  96. </p>
  97. <p>
  98. Basiquement, un serveur web est un ordinateur tout à fait classique, connecté à Internet, qui distribue les
  99. pages Internet aux clients qui les demandent. Le client, c'est vous. Et la page Internet, c'est l'ensemble du
  100. code source qui décrit cette page, comme je l'ai expliqué dans la section précédente. Le préfixe
  101. <code>http</code> dans l'URL définit le protocole qu'utilise votre navigateur (par exemple Firefox, Edge ou
  102. Safari) pour discuter avec mon ordinateur.
  103. </p>
  104. <p>
  105. Alors oui, je dis "mon ordinateur", car le serveur qui vient de vous donner cette page web est en fait un micro
  106. ordinateur branché à ma box Internet dans ma cuisine. C'est un Raspberry Pi 3, que j'ai gagné lors d'un concours
  107. de programmation fin 2017.
  108. </p>
  109. <p>
  110. Pour ceux qui se demandent à quoi peut ressembler une telle machine, je vous laisse visiter
  111. <a href="https://www.raspberrypi.org/products/raspberry-pi-3-model-b/"> le site du vendeur officiel</a>.
  112. En fait, c'est tout simplement une unité centrale, comme celle que vous pouvez avoir dans votre bureau, mais en
  113. plus petit. Beaucoup plus petit. Mais tout autant fonctionnel (il marche bien mon site, non ?).
  114. </p>
  115. <p>
  116. Après, il a fallu configurer l'appareil. Le système d'exploitation est Debian, une distribution de Linux. Pour
  117. les néophites, un système d'exploitation est le programme principal qui vous permet d'utiliser votre ordinateur
  118. personnel. Debian est à Linux ce que Windows 10 est à Microsoft Windows (en gros).
  119. </p>
  120. <p>
  121. Enfin, il suffit d'installer un serveur HTTP (le programme qui répondra à votre navigateur). Ici j'ai utilisé
  122. <a href="https://httpd.apache.org/">Apache 2</a>, un programme libre très fonctionnel.
  123. </p>
  124. <h3>
  125. <img src="https://img.icons8.com/color/48/000000/dns.png" alt="V">
  126. OVH : mon nom de domaine
  127. </h3>
  128. <p>
  129. Alors, récapitulons.
  130. </p>
  131. <p>
  132. J'ai un code source réalisé (entre autres) avec Bootstrap.
  133. </p>
  134. <p>
  135. J'ai un serveur capable de répondre aux clients pour distribuer les pages web.
  136. </p>
  137. <p>
  138. Mais l'histoire n'est pas finie. Je pense que vous le savez, Internet est un réseau mondial. Il est donc très
  139. vaste. Il y aurait plus de 200 millions de serveurs comme celui que je viens de vous présenter qui y sont
  140. connectés. (Selon
  141. <a href="https://fr.wikipedia.org/wiki/Internet_dans_le_monde#Nombre_de_serveurs">Wikipedia</a>).
  142. </p>
  143. <p>
  144. Mais alors, comment votre navigateur fait-il pour retrouver mon site dans cette immense toile ?
  145. </p>
  146. <p>
  147. Alors je ne vais pas vous faire un cours sur le protocole <em>TCP/IP</em>, là n'est pas le propos. Dites vous
  148. simplement qu'avec une adresse IP (comme <code>109.9.177.75</code> par exemple) votre navigateur web est capable
  149. de retrouver mon serveur. Voyez ça comme une adresse postale pour une maison.
  150. </p>
  151. <p>
  152. Alors toutes les box, y compris celle qui est chez vous (si vous en avez une), possèdent une adresse IP. Mais
  153. imaginez, taper <code>http://109.9.177.75/cv.html</code> à la place de
  154. <code>http://jovian-hersemeule.eu/cv.html</code> dans votre barre d'adresse serait beaucoup moins attrayant.
  155. </p>
  156. <p>
  157. J'ai donc, pour votre confort, acheté le nom de domaine <code>jovian-hersemeule.eu</code> (pour quelques euros)
  158. sur
  159. <a href="https://www.ovh.co.uk/domains/">le site OVH</a>.
  160. En plus de raisons esthétiques, un nom de domaine est utilisé pour des raisons pratiques. En effet, l'adresse IP
  161. de mon serveur peut être ammenée à changer (si la box est redémarrée, ou si je déménage par exemple). Je peux
  162. configurer à ma guise l'adresse IP cible de mon nom de domaine. Ce genre de détails techniques est donc rendu
  163. transparent pour l'utilisateur. Pas besoin de connaître par coeur toutes les adresses IP de vos sites préférés
  164. ...
  165. </p>
  166. <h3>
  167. <img src="https://img.icons8.com/color/48/000000/icons8-logo.png" alt="V">
  168. ICON8 : des icônes colorées
  169. </h3>
  170. <p>
  171. Vous avez sans doute déjà remarqué que j'utilise de nombreuses icônes sur mon site. Les plus observateurs auront
  172. de plus remarqué une liste de liens en bas de certaines pages (comme celle-ci), et les plus techniques et
  173. curieux d'entres vous auront peut-être remarqué que ces icônes ne sont pas hébergées sur mon serveur.
  174. </p>
  175. <p>
  176. En fait j'utilise un site web appelé
  177. <a href="https://icons8.com/">Icons8</a>
  178. qui regorge d'icônes en tous genres. C'est très pratique.
  179. </p>
  180. <p>
  181. J'utilise pour l'instant ce service gratuitement. Cela limite son utilisation à de petites résolutions et ne
  182. permet pas d'avoir des images vectorielles. Peut-être aurai-je recours à la solution premium plus tard, afin
  183. d'améliorer le contenu proposé sur ce site et pour soutenir les développeurs d'Icons8.
  184. </p>
  185. <h3>
  186. Conclusion
  187. </h3>
  188. <p>
  189. Voilà, la petite description de ce site Internet touche à sa fin. J'espère que cela a éclairci ce qui se cache
  190. derrière les lignes que vous êtes en train de lire. Peut-être cela vous a même aidé dans votre compréhension du
  191. web ...
  192. </p>
  193. <p>
  194. Si vous aussi, vous êtes tentés par le développement de votre site, et que vous vous y connaissez très peu dans
  195. le domaine, je vous mets en référence ce tutoriel OpenClassrooms : <a
  196. href="https://openclassrooms.com/fr/courses/1603881-apprenez-a-creer-votre-site-web-avec-html5-et-css3">Apprenez
  197. à créer votre site web avec HTML5 et CSS3</a>. Je l'ai moi-même consulté pour réapprendre les bases.
  198. <a href="https://openclassrooms.com/fr/courses/1885491-prenez-en-main-bootstrap">Un cours sur Bootstrap</a> y
  199. est aussi disponible.
  200. </p>
  201. <p>
  202. Merci d'avoir lu cet article jusqu'au bout, et n'hésitez pas à jeter un oeil sur les autres projets ou autres
  203. pages du site.
  204. </p>
  205. <p>
  206. Bonne visite !
  207. </p>
  208. <!-- Pagination -->
  209. <ul class="pagination pagination-lg justify-content-center">
  210. <li class="page-item">
  211. <a class="page-link arrow" title="Page précédente" href="../projets.php">&laquo</a>
  212. </li>
  213. <li class="page-item active">
  214. <div class="page-link" title="Site web de Jovian">1</div>
  215. </li>
  216. <li class="page-item">
  217. <a class="page-link" title="ASCII Space destroyer" href="pro_ascii_space.php">2</a>
  218. </li>
  219. <li class="page-item">
  220. <a class="page-link" title="Pulsar" href="pro_pulsar.php">3</a>
  221. </li>
  222. <li class="page-item">
  223. <a class="page-link" title="Quoridor" href="pro_quoridor.php">4</a>
  224. </li>
  225. <li class="page-item">
  226. <a class="page-link arrow" title="Page suivante" href="pro_ascii_space.php">&raquo</a>
  227. </li>
  228. </ul>
  229. </main>
  230. <!-- Footer -->
  231. <footer class="footer bg-dark mt-5">
  232. <div class="container">
  233. <span class="text-muted">Images sources : ICON8</span>
  234. <a href="https://icons8.com/icon/104082/cv">CV icon by Icons8</a>
  235. <a href="https://icons8.com/icon/104084/city">City icon by Icons8</a>
  236. <a href="https://icons8.com/icon/19293/code">Code icon by Icons8</a>
  237. <a href="https://icons8.com/icon/20909/html-5">Html 5 icon by Icons8</a>
  238. <a href="https://icons8.com/icon/31748/term">Term icon by Icons8</a>
  239. <a href="https://icons8.com/icon/84710/bootstrap">Bootstrap icon by Icons8</a>
  240. <a href="https://icons8.com/icon/13443/raspberry-pi">Raspberry Pi icon by Icons8</a>
  241. <a href="https://icons8.com/icon/63267/dns">DNS icon by Icons8</a>
  242. <a href="https://icons8.com/icon/20825/icons8">Icons8 icon by Icons8</a>
  243. </div>
  244. </footer>
  245. <!-- Scripts -->
  246. <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
  247. integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
  248. crossorigin="anonymous"></script>
  249. <script src="../js/bootstrap.js"></script>
  250. </body>
  251. </html>