通过telent、php深入了解http协议

HTTP协议简单点就是client怎么问。server如何答。

重要性:webservice 还是rest做大型架构都离不开对http协议的认识,甚至能够简化的说webservice =  http + XML;Rest = HTTP + json;各种API,也是用http+ xml/json来实现。

做小偷站。採集,ajax也都须要对http协议了解。

工作流程:

 1)首先客户机与server须要建立连接。

仅仅要单击某个超级链接。HTTP的工作開始。

 2)建立连接后。客户机发送一个请求给server。请求方式的格式为:请求行(请求方法【GET/POST/DELETE/PUT】。请求协议。请求路径)。请求头,请求主题信息

 3)server接到请求后,给予对应的响应信息,其格式为一个状态行。包含信息的协议版本、一个成功或错误的代码,后边是MIME信息包含server信息、实体信息和可能的内容。

 4)client接收server所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与server断开连接


请求方法:GET,POST,HEAD

HEAD 和GET基本一致,仅仅是不返回内容。比方我们须要确定一个状态,仅仅要要一个返回状态码200。就head

即可了,看差别:


put向server写入信息,server未必支持。

TRACE 是使用代理,看代理是否改动了自己http请求;

OPTINOS 返回server可用方法  在头信息里返回可用方法 server未必支持

GET  /test.php HTTP/1.1
HOST : 127.0.0.1

//server未必支持
PUT /test.php HTTP/1.1
HOST: 127.0.0.1
content-length:5


TRACE  /test.php HTTP/1.1
HOST: 127.0.0.1
content-length:5

/返回server可用方法  在头信息里返回可用方法 server未必支持
OPTINOS   /test.php HTTP/1.1
HOST: 127.0.0.1
content-length:5
OPTINOS //返回server可用方法


通过命令行来解释:

get方法:



ctrl + 】 然后回车,打开比較具体信息。


通过post发送给server数据:




状态码:server返回情况

200 OKserver成功返回网页。

301/2 永久/暂时重定向

304  not modify 未改动

307 用于保持原有数据,比如用form表单进行post提交,此次进行从定向。假设不是307,而是其它,进行转跳,会造成数据丢失。此时用用307,也会发送进行post转跳

失败:

404 Not found, 訪问网页不存在

500 server内部错误

503 server临时不可用





状态文字,方便看状态码

原文地址:https://www.cnblogs.com/yxysuanfa/p/6946662.html