饥人谷作业 --- http介绍

2018-05-13  本文已影响0人  xiaoznz

今天我要写一个有关http介绍的东西,那么首先我觉得有必要把我现阶段理解的http内容做一个总结:

超文本傳輸協定英文HyperText Transfer Protocol,縮寫HTTP)是一種用於分佈式、協作式和超媒體信息系統的應用層協議[1]。HTTP是全球資訊網的數據通信的基礎。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

HTTP的发展是由提姆·柏內茲-李於1989年在歐洲核子研究組織(CERN)所發起。HTTP的標準制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)進行協調,最终发布了一系列的RFC,其中最著名的是1999年6月公佈的 RFC 2616,定義了HTTP協議中現今廣泛使用的一個版本——HTTP 1.1。(以上内容抄自谷歌超文本传输协议

简单来说,http就是一个规定你怎么传数据格式的玩意,而至于怎么传,那就交给tcp协议来管了。

那么现在解释完了我个人的理解以后,我就把http协议的请求和响应,以及curl命令做一个介绍:

1:HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容

首先请求最多包含四部分,最少包含三部分。(第四部分可以为空)如图:

第一部分:动词 路径 协议/版本(我这个就是发了一个post请求,路径是/,协议版本是http1.1)

动词有 GET( 指定的页面信息,并返回响应主体)

POST(向指定资源提交数据,请求服务器进行处理)

 PUT(向指定资源位置上传其最新内容,也就是全局更新) 

PATCH(区别于put,资源的部分更新)

 DELETE (请求服务器删除所请求URI)等

这里的路径包括「查询参数」,但不包括「锚点」,如果没有写路径,那么路径默认为 /(比如我的)

第二部分:key:value

比如我图上就有四条键值对,依次是host,user-agent。accept,content-length,content-type(标注了第 4 部分的格式)

第三部分永远都是一个回车(\n)

第四部分:分是否有上传内容,如果有显示比如图上我的3 bytes data,如果没有就不显示。

好了,我们看看实际操作中如何看http请求呢,打开chrome,按F12

打开 Network    地址栏输入网址    在 Network 点击,查看 request,点击「view source」

如图:

这是qq的网页http请求部分

如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

2.HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容

响应也包含四部分,先放图:

第一部分:协议/版本号 状态码 状态解释

协议版本号不多解释,状态码是个啥玩意呢?错误404看见过吧,这就是状态码

1xx:消息,这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束

2xx:成功,这一类型的状态码,代表请求已成功被服务器接收、理解、并接受(200,203,204)

3xx:重定向,这类状态码代表需要客户端采取进一步的操作才能完成请求(比如我这个302)

4xx:客户端错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理(401,404,405)

5xx:服务器错误,表示服务器无法完成明显有效的请求(502,503)

状态码主要是这几种

状态解释没啥用,不说也罢。

第二部分: Key: value(同请求的第二部分一样)

第三部分也是回车

第四部分是:要下载的内容

到了chrome上,还是跟之前一样,不过要换到request了,如图:

3.如何使用 curl 命令

好了,介绍了那么多,我们看看在命令行怎么实现看http协议吧,用curl命令即可

语法:curl     -[参数]    --     [url]

常用参数:-d/--data    HTTP POST方式传送数据 

-s/--silent静音模式。不输出任何东西

-v/--verbose 

 -H/--header 自定义头信息传递给服务器

-X/--request 指定什么命令  

如图:

上一篇下一篇

猜你喜欢

热点阅读