Menu Close

Go – HTTP Redirect Function in Go

In this article, we will explore the http Redirect function in Go net/http package in detail, along with examples.


HTTP redirection is a common requirement in web applications and can be useful for various purposes, such as URL shortening, moving resources, or directing users to a new site location. In this article, we will discuss the HTTP Redirect function in the Go programming language (also known as Golang). We’ll explain its purpose, usage, and provide examples to help you understand how to use it effectively in your projects.

What is HTTP Redirect?

HTTP Redirect is a server response that instructs the client (usually a web browser) to navigate to a different URL. This is typically done by sending an HTTP response with a status code in the 3xx range, such as 301 (Moved Permanently) or 302 (Found), along with the target URL in the “Location” header.

The Go standard library provides a built-in function, http.Redirect, which allows you to easily implement HTTP redirection in your web applications.

Using http.Redirect in Go

The http.Redirect function is part of the net/http package in the Go standard library. Its signature is:

func Redirect(w http.ResponseWriter, r *http.Request, url string, code int)
  • w (http.ResponseWriter): The ResponseWriter interface that enables you to write the HTTP response.
  • r (*http.Request): A pointer to the current HTTP request being processed.
  • url (string): The target URL to which the client should be redirected.
  • code (int): The HTTP status code that indicates the type of redirection.

Here’s an example of using http.Redirect in a simple web application:

package main

import (

func main() {
	http.HandleFunc("/", redirectHandler)
	http.ListenAndServe(":8080", nil)

func redirectHandler(w http.ResponseWriter, r *http.Request) {
	targetURL := ""
	http.Redirect(w, r, targetURL, http.StatusFound)

In this example, we define a redirectHandler function that will be called whenever a request is made to the root path (“/”). The handler then redirects the client to the targetURL using the http.Redirect function with a 302 Found status code.

Choosing the Right Status Code

The choice of status code depends on the specific use case for the redirection. Some common status codes used for redirection are:

  • 301 Moved Permanently: Use this status code when the resource has been permanently moved to a new location. Clients should update their bookmarks and cache the new URL for future requests.
  • 302 Found: This status code indicates a temporary redirection. Clients should continue to use the original URL for future requests, as the new location may change.
  • 303 See Other: Use this status code when the response to the request can be found under a different URL and should be retrieved using a GET method.
  • 307 Temporary Redirect: Similar to 302 Found, but it explicitly states that the request method should not change when following the redirection.


The http.Redirect function in Go makes it easy to implement HTTP redirections in your web applications. By understanding its usage and choosing the right status code, you can effectively direct clients to different URLs based on your specific needs. Don’t hesitate to explore the Go standard library further and experiment with the various features it provides to build robust and efficient web applications.

To check more Go related articles. Pls click given below link:

Posted in golang, net, packages

Leave a Reply

Your email address will not be published. Required fields are marked *