欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTTP协议方法及状态码(HTTP协议入门必备)

程序员文章站 2022-06-28 21:42:26
...

目录

 

基本概念

使用telnet演示HEAD方法

使用telnet演示TRACE方法

使用telnet演示OPTIONS方法

HTTP响应中的状态码

304响应演示

使用telnet演示304响应


 

基本概念

客户端:

请求行(请求方法 路径 协议)

空行

主体信息(可选)(发送内容)

如:

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

响应截图如下:

HTTP协议方法及状态码(HTTP协议入门必备)

如果查看没有的文件,如下下代码:

HEAD /index.html HTTP/1.1
Host: 47.101.40.99

响应截图如下:

HTTP协议方法及状态码(HTTP协议入门必备)

Head的效果为,只给出响应头,不给出内容。

 

使用telnet演示TRACE方法

TRACE:如果用代理上某个网站,想看看代理有没有修改HTTP请求,就可以用TRACE来测试。TRACE可以获取访问那个网站的最后收到的请求。

如下命令:

TRACE / HTTP/1.1
Host: 47.101.40.99

响应头如下:

HTTP协议方法及状态码(HTTP协议入门必备)

这里响应是是405,说明这个方法不能用,服务器没有开启这个方法

 

使用telnet演示OPTIONS方法

OPTIONS:是返回服务器可用的请求方法。

OPTIONS /index.jsp HTTP/1.1
Host: localhost

响应如下:

HTTP协议方法及状态码(HTTP协议入门必备)

这里可以知道,本地服务器运行的方法有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">

HTTP协议方法及状态码(HTTP协议入门必备)

在此刷新后就会出现304的响应:

HTTP协议方法及状态码(HTTP协议入门必备)

查看下响应信息:

HTTP协议方法及状态码(HTTP协议入门必备)

客户端,多了这几个if的变化,因为客户端缓存里有这个图片,才会发送的。他只是不确定这个图片是不是变过!

这里的Response Headers里面用ETag来判断是否要更新,会配合Last-Modified,服务器就根据他发过来的ETag,Last-Modified,发送回报信息!

 

使用telnet演示304响应

构造如下的HTTP协议

GET /img/index.html HTTP/1.1
Host: localhost

运行截图如下:

HTTP协议方法及状态码(HTTP协议入门必备)

增加如下信息,即可响应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"

运行截图如下:

HTTP协议方法及状态码(HTTP协议入门必备)