A Beginner's Guide to HTTP
Siddhartha Mukherjee
TE Oracle Analyst Intern at KPMG India | Aspiring Software Engineer | Building seamless applications through Lines of code.
HTTP Headers:
HTTP headers are part of the HTTP protocol and provide additional information about the request or response. They consist of a case-insensitive string followed by a colon and a value, and they provide a variety of functionalities such as authentication, caching controls, or defining the body content type.
Metadata - They are data about the data. Key value sent along with request and response.
Caching | Authentication | State Management
Caching
HTTP headers can control caching behavior, improving performance by storing a copy of the resource and serving it without sending a request to the server each time. The Cache-Control header is used to specify directives for caching mechanisms in both requests and responses.
Authentication
Headers also play a crucial role in authentication. The Authorization header carries credentials to authenticate a user agent with a server. It usually contains encoded user credentials (username and password) or tokens.
State Management
HTTP is stateless, but headers help maintain state information between requests and responses. The Cookie header is used to store user-specific data on the client side, and the server reads this header to maintain stateful sessions.
Types of HTTP Header
Request Header: These are received from the client.
Request headers are sent by the client to the server to provide information about the client's request. These headers may include various types of information such as the client's preferred content type, the type of browser used, and so on.
Response Header: These are sent from the server.
Response headers are sent by the server to the client to provide information about the server's response. These headers may include the date and time of the response, the server's identity, the content type of the response, and so on.
Representation Header: Used for Encoding or Compression.
Representation headers provide information about the body of the message, such as its content type, length, and encoding or compression mechanisms applied to it.
Payload Headers: Accompany Data
Payload headers are included with the body of the message (the payload) and provide additional information about it. They can be used to describe the payload's content type, length, and other properties.
Most Frequently Used Headers
Cross Origin Resource Sharing (CORS)
Access-Control-Allow-Origin
The Access-Control-Allow-Origin is a crucial HTTP header in the context of Cross-Origin Resource Sharing (CORS). It specifies which domains are permitted to access resources on a server. For security reasons, web browsers prohibit web pages from making requests to a different domain than the one the web page came from. However, Access-Control-Allow-Origin can override this restriction. The value of this header can either be a specific domain or a wildcard (*) to allow all domains. By using this header, servers can control which domains are allowed to access its resources, enhancing the server's security.
Access-Control-Allow Credential
The Access-Control-Allow-Credentials is an HTTP header that tells the browser that the server permits credentials to be included during Cross Origin requests. This header works in conjunction with CORS (Cross Origin Resource Sharing) mechanism. When this header is set to true, it allows the browser to expose the response to frontend JavaScript when the request's credentials mode is include. In the context of HTTP requests, credentials can include cookies, authorization headers, or HTTP authentication. It's important to note that if it's used, it must be paired with the Access-Control-Allow-Origin header, and the latter cannot be a wildcard (*); it must specify a domain.
Access-Control-Allow-Method
The Access-Control-Allow-Method is an HTTP header used in Cross-Origin Resource Sharing (CORS). This header informs the browser about the HTTP methods (GET, POST, PUT, DELETE, etc.) allowed when accessing the resource. The server includes this header in its response to a preflight request (an initial request sent by the browser to check the safety of the main request) to indicate which methods are permitted. This header plays a critical role in enhancing web security by limiting the types of requests that other domains can make.
Security in HTTP
Cross-Origin-Embedded-Policy
The Cross-Origin-Embedded-Policy is an HTTP response header. It's a part of the security features provided by the browser to safeguard the application from certain types of attacks or data leaks. This header allows a document to enforce a certain policy, preventing the document from being loaded into a cross-origin frame. It's important in scenarios where protection is required against attacks that rely on embedding a document into a third-party website. This can help in maintaining the confidentiality and integrity of the application's data.
Cross-Origin-Opener-Policy
The Cross-Origin-Opener-Policy (COOP) is an HTTP response header used to isolate a document from other documents running in the same browsing context group. This is helpful in mitigating certain types of attacks, such as Spectre. The COOP header allows a document to break the link with its opener when the document navigates, creating a new top-level browsing context. This helps to enhance the security of an application by preventing other documents from interacting with it through methods like window.opener.
Content-Security-Policy
The "Content-Security-Policy" is an important HTTP response header that is used to add an extra layer of security to a website. It helps in preventing certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. The header does this by allowing you to define which content sources are approved and by disallowing the loading of resources from any other sources. This means that even if an attacker can find a hole through which to inject script, the script will not be loaded and executed as it's not from an approved source.
领英推荐
X-XSS-Protection
The X-XSS-Protection HTTP header is a security feature that helps to mitigate cross-site scripting (XSS) attacks in web applications. XSS attacks occur when a malicious user injects client-side scripts into web pages viewed by other users. These scripts can steal sensitive information, perform actions on behalf of the user, or deface the website.
HTTP Methods
They are set of operations that can be used to interact with the server.
1. GET: Retrieve a Resource
2. HEAD: No Message Body (Response Headers Only)
3. OPTIONS: What operations are available
4. TRACE: Loopback Test (Get some data)
5. DELETE: Remove a resource
6. PUT: Replace a resource
7. POST: Interact with Resource ( Mostly Add)
8. PATCH: Change part of a Resource
HTTP Status Codes
HTTP status codes are server responses to client's HTTP requests. They're three-digit codes grouped into five classes:
Some common status codes include:
Each code helps the client understand the server's response and take appropriate action.
Some standardized HTTP Status Codes
101 Continue
102 Processing
200 OK
201 Created
202 Accepted
307 Temporary Redirect
308 Permanent Redirect
400 Bad Request
401 Unauthorized
402 Payment Required
404 Not Found
500 Internal Server Error
504 Gateway Timeout
In conclusion, knowledge of the basics of HTTP is an essential step for anyone venturing into the world of web development. With this article, I hope I've demystified HTTP and provided you with a foundation to build upon.
Remember, the journey to becoming proficient in web technologies is ongoing, so keep learning and experimenting. Thank you for joining me on this journey!
Data Analyst || AI-ML Enthusiast || Front-End Developer || Flask || JAVA || KIIT 25'
9 个月Sabas vai