📅  最后修改于: 2023-12-03 15:15:45.191000             🧑  作者: Mango
HTTP请求由三部分组成:请求行、请求头和请求体。
请求行由三部分组成:请求方法、请求路径和HTTP协议版本。通常情况下,常用的请求方法有GET、POST、PUT、PATCH、DELETE等。
const requestMethod: string = 'GET'; // 请求方法
const requestPath: string = '/api/users'; // 请求路径
const httpVersion: string = 'HTTP/1.1'; // HTTP协议版本
const requestLine: string = `${requestMethod} ${requestPath} ${httpVersion}`; // 组成请求行
请求头由多个键值对组成,用于传递一些额外的信息给服务器,比如Content-Type、User-Agent等。
const requestHeaders: {
'Content-Type': string;
'User-Agent': string;
} = {
'Content-Type': 'application/json', // 表示请求体是JSON格式
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', // 浏览器标识
};
请求体用于向服务器传递数据,通常用于POST、PUT等请求方法。
const requestBody: {
name: string;
age: number;
} = {
name: '张三',
age: 18,
};
将请求行、请求头和请求体以空行分隔,就组成了完整的HTTP请求。
const requestMethod: string = 'POST'; // 请求方法
const requestPath: string = '/api/users'; // 请求路径
const httpVersion: string = 'HTTP/1.1'; // HTTP协议版本
const requestHeaders: {
'Content-Type': string;
'User-Agent': string;
} = {
'Content-Type': 'application/json', // 表示请求体是JSON格式
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', // 浏览器标识
};
const requestBody: {
name: string;
age: number;
} = {
name: '张三',
age: 18,
};
const requestLine: string = `${requestMethod} ${requestPath} ${httpVersion}`; // 组成请求行
const request: string = `${requestLine}\r\n${Object.keys(requestHeaders)
.map((key) => `${key}:${requestHeaders[key]}`)
.join('\r\n')}\r\n\r\n${JSON.stringify(requestBody)}`; // 组成完整的HTTP请求
console.log(request);
/*
POST /api/users HTTP/1.1
Content-Type:application/json
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
{"name":"张三","age":18}
*/
以上就是HTTP请求由三部分组成的详细介绍,分别是请求行、请求头和请求体。在日常开发中,我们需要根据实际情况来组装HTTP请求,以完成数据的传递和交互。