计算机网络 HTTP 请求与响应

本文详细解析了HTTP请求与响应的结构,包括请求行、请求头部、请求正文以及响应的状态行、响应头部和响应正文。阐述了常见的请求与响应头部字段,如Host、User-Agent、Content-Type等,同时解释了状态码的意义,如200 OK、404 Not Found等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP 请求报文

HTTP请求报文主要由请求行、请求头部、请求正文这 3 部分组成:

请求行

由 3 部分组成,分别为:请求方法、URL 以及协议版本,之间由空格分隔

请求方法包括 GET、DELETE、PUT、POST、TRACEOPTIONSHEAD 以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的。

协议版本的格式为:HTTP/主版本号.次版本号,常用的有 HTTP/1.0 和 HTTP/1.1。

请求头部

请求头部为请求报文添加了一些附加信息,由键值对组成,每行一对,名和值之间使用冒号分隔。

常见请求头如下:

请求头说明
Host接受请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent发送请求的应用程序名称
Connection指定与连接相关的属性,如 Connection:Keep-Alive
Accept-Charset通知服务端可以发送的编码格式
Accept-Encoding通知服务端可以发送的数据压缩格式
Accept-Language通知服务端可以发送的语言

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少。

请求正文

可选部分,比如 GET 请求就没有请求正文

HTTP 响应报文

HTTP 响应报文主要由状态行、响应头部、响应正文 3 部分组成。

状态行

由 3 部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔。

状态代码为 3 位数字,200~299 的状态码表示成功,300~399 的状态码指资源重定向,400~499 的状态码指客户端请求出错,500~599 的状态码指服务端出错(HTTP/1.1向协议中引入了信息性状态码,范围为100~199)。

状态码英文名称说明
100Continue继续。客户端应继续其请求
200OK请求成功
301Moved Permanently永久重定向
302Found临时重定向
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。缓存文件并未过期,还可继续使用,无需再次从服务端获取。
400Bad Request客户端请求的语法错误,服务器无法理解。
401Unauthorized请求要求身份认证
403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求。
404Not Found请求资源不存在,服务器无法根据客户端的请求找到资源(网页)。
405Method Not Allowed客户端请求中的方法被禁止
500Internal Server Error服务器内部错误,无法完成请求。
502Bad Gateway作为网关或者代理的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。
503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的 Retry-After 头信息中。
504Gateway Time-out充当网关或代理的服务器未及时从远端服务器获取响应。

301 与 302:

301:永久重定向。请求的资源已被永久的移动到新 URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的 URI 代替。搜索引擎将删除源地址,保留重定向地址。

302:资源只是临时被移动。客户端应继续使用原有 URI。重定向地址由响应头中的 Location 属性指定。由于搜索引擎的判定问题,较为复杂的 URL 容易被其它网站使用更为精简的 URL 及 302 重定向劫持。

响应头部

与请求头部类似,为响应报文添加了一些附加信息。

常见响应头部如下:

响应头说明
Server服务器应用程序软件的名称和版本
Content-Type响应正文的类型
Content-Length响应正文长度
Content-Charset响应正文使用的编码
Content-Encoding响应正文使用的数据压缩格式
Content-Language响应正文使用的语言

参考:

https://blog.youkuaiyun.com/a19881029/article/details/14002273

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值