HTTP协议方法及状态码(HTTP协议入门必备)
程序员文章站
2022-06-28 21:42:26
...
目录
基本概念
客户端:
请求行(请求方法 路径 协议)
空行
主体信息(可选)(发送内容)
如:
POST /index.jsp HTTP/1.1
Host: localhost
Content: type: application/x-www-form-urlencode
Content-length: 5
Age=3
响应行(协议 状态码 状态文字)
响应头信息(格式为 key:value)
空行
主体信息(也可能没有)
如:
HTTP/1.1 200 OK
Content-type: text/html
Content-length: 5
hello
请求方法有:GET POST HEAD PUT TRACE DELETE OPTIONS
使用telnet演示HEAD方法
如下命令:
HEAD /index.jsp HTTP/1.1
Host: 47.101.40.99
响应截图如下:
如果查看没有的文件,如下下代码:
HEAD /index.html HTTP/1.1
Host: 47.101.40.99
响应截图如下:
Head的效果为,只给出响应头,不给出内容。
使用telnet演示TRACE方法
TRACE:如果用代理上某个网站,想看看代理有没有修改HTTP请求,就可以用TRACE来测试。TRACE可以获取访问那个网站的最后收到的请求。
如下命令:
TRACE / HTTP/1.1
Host: 47.101.40.99
响应头如下:
这里响应是是405,说明这个方法不能用,服务器没有开启这个方法
使用telnet演示OPTIONS方法
OPTIONS:是返回服务器可用的请求方法。
OPTIONS /index.jsp HTTP/1.1
Host: localhost
响应如下:
这里可以知道,本地服务器运行的方法有GET、HEAD、POST、OPTIONS、TRACE
HTTP响应中的状态码
状态码 | 定义 | 说明 |
1XX | 信息 | 接收到请求,继续处理 |
2XX | 成功 | 操作成功收到,理解和接收 |
3XX | 重定义 | 为了完成请求,必须采用进一步措施 |
4XX | 客户端错误 | 请求的语法有错误或不能完全被满足 |
5XX | 服务端错误 | 服务器无法完成明显有效的效果 |
200:服务器成功放好网页
301/2:永久/临时重定向
304:Not Modified未修改
失败的状态码:
404:请求的网页不存在
503:服务器暂时不可用
500:服务器内部错误
304响应演示
304是指取缓存:
如构造如下的界面
代码如下:
<img src = "tomcat.png">
在此刷新后就会出现304的响应:
查看下响应信息:
客户端,多了这几个if的变化,因为客户端缓存里有这个图片,才会发送的。他只是不确定这个图片是不是变过!
这里的Response Headers里面用ETag来判断是否要更新,会配合Last-Modified,服务器就根据他发过来的ETag,Last-Modified,发送回报信息!
使用telnet演示304响应
构造如下的HTTP协议
GET /img/index.html HTTP/1.1
Host: localhost
运行截图如下:
增加如下信息,即可响应304
HTTP构造如下:
GET /img/index.html HTTP/1.1
Host: localhost
If-Modified-Since: Fri, 22 Feb 2019 03:08:38 GMT
If-None-Match: "18-58272e845856e"
运行截图如下: