server1.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package main
  2. import (
  3. "fmt"
  4. "net/http"
  5. )
  6. // Обработчик HTTP-запросов
  7. func handler(w http.ResponseWriter, r *http.Request) {
  8. fmt.Println(r.Method) // Тип метода
  9. fmt.Println(r.URL) // запрашиваемый URL
  10. // fmt.Println(r.Proto) // версия протокола
  11. w.Write([]byte("Hello!"))
  12. }
  13. func main() {
  14. // Регистрируем обработчик для пути "/"
  15. http.HandleFunc("/", handler)
  16. // Запускаем веб-сервер на порту 8080
  17. err := http.ListenAndServe(":8080", nil)
  18. if err != nil {
  19. fmt.Println("Ошибка запуска сервера:", err)
  20. }
  21. }
  22. func handleRequest(w http.ResponseWriter, r *http.Request) {
  23. // В зависимости от метода HTTP-запроса вызываем соответствующий обработчик
  24. switch r.Method {
  25. case http.MethodGet:
  26. handleGET(w, r)
  27. case http.MethodPost:
  28. handlePOST(w, r)
  29. case http.MethodPut:
  30. handlePUT(w, r)
  31. case http.MethodDelete:
  32. handleDELETE(w, r)
  33. default:
  34. http.Error(w, "Метод не поддерживается", http.StatusMethodNotAllowed)
  35. }
  36. }
  37. // Обработчик для GET-запросов
  38. func handleGET(w http.ResponseWriter, r *http.Request) {
  39. fmt.Fprintln(w, "Это GET-запрос!")
  40. }
  41. // Обработчик для POST-запросов
  42. func handlePOST(w http.ResponseWriter, r *http.Request) {
  43. fmt.Fprintln(w, "Это POST-запрос!")
  44. }
  45. // Обработчик для PUT-запросов
  46. func handlePUT(w http.ResponseWriter, r *http.Request) {
  47. fmt.Fprintln(w, "Это PUT-запрос!")
  48. }
  49. // Обработчик для DELETE-запросов
  50. func handleDELETE(w http.ResponseWriter, r *http.Request) {
  51. fmt.Fprintln(w, "Это DELETE-запрос!")
  52. }