其中介绍到了Curl 因为老师简单介绍了其中的 一些命令的使用 来查看http的通信情况!

我这里先贴一张curl 中的命令参数列表:https://curl.haxx.se/docs/manpage.html

其中博文中主要围绕下面几个问题进行讲解:

  1. HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容
  2. HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容
  3. 如何使用 curl 命令

 

 

01|请求行

其中还有一些method具体方法没有补充,具体的请见下图:

方法应用场景
get用于请求URI获得资源
post用于添加新的资源
put用于修改某个内容
delete删除某个内容
connection用于代理进行传输例如SSL
options询问可以执行哪些方法
patch部分文档更改
propfind查看属性
proppatch设置属性
mkcol创建集合
copy拷贝
move移动
locak加锁
unlock解锁
trace用于远程诊断服务器
head类似于get,用于检查对象是否存在永遇得到元数据!

 

  1. 但是一般在我们开发当中还是实际生活中运用到的方法也只有几个而已,

    • 用到method一般来看get和post比较多!

    • 所以我们讲一讲GET和POST

统一资源标识符(URI):这一点的话还是比较好理解的!通过URI提供的一种途径,用于在特定的名字空间资源的标识,以补充网址!详情请见WIKI:URI

其中的HTTP Version通过英文就能够表述了就是HTTP的版本信息!

 

02|请求头

请求头包含:

Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。

User-Agent:是客户浏览器名称

Host:对应网址URL中的Web名称和端口号。

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。

connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。

Referer:表明产生请求的网页URL。如比从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,在向服务器发送的GET/icwork/search中的请求中,Referer是http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪Web请求是从什么网站来的。

User-Agent:是客户浏览器名称。

Content-Type:用来表名request的内容类型。可以用HttpServletRequest的getContentType()方法取得。

Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1.

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。

但是有些信息在一些浏览器中可能看不到,但是常见得请求头信息属性有:

在这里我贴一张 Chrome Developer Tools的图片:

Chrome Developer Tools

和上述描述基本上是差不多的!

 

 

03|数据体

就是我们所传入的数据啊,我通过以下例子来体现比如这样:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E9%A5%A5%E4%BA%BA%E8%B0%B7&oq=HTTP%25E8%25AF%25B7%25E6%25B1%2582%25E5%258C%2585%25E5%2590%25AB%25E5%2593%25AA%25E4%25BA%259B%25E9%2583%25A8%25E5%2588%2586%253F&rsv_pq=d53b5e8e000360f8&rsv_t=1ecbeD6%2FAEnGXYYkQZNZ46P43ovobcORGP16xytFCkP9olOmcTLZyiOH120&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=5&rsv_sug7=100&bs=HTTP%E8%AF%B7%E6%B1%82%E5%8C%85%E5%90%AB%E5%93%AA%E4%BA%9B%E9%83%A8%E5%88%86%3F

browser Address bar

就类似于这样,当然我再浏览器看到的效果和在地址栏中拿到的信息不一样但是其中所请求的信息就是我们所传入的数据体!

 

下面我们来说说相应的内容:

1xx指示信息–表示请求已接收,继续处理
2xx成功–表示请求已被成功接收、理解、接受
3xx重定向–要完成请求必须进行更进一步的操作。
4xx客户端错误–请求有语法错误或请求无法实现。
5xx服务器端错误–服务器未能实现合法的请求。

响应头:包含服务器类型,日期,长度,内容类型等

我们看看在Chrome Developer Tools中的相应内容信息:

use Chrome developer response Content

 

其中在Chrome开发者工具中也是大致的情况!

 

Tips:

然后说说如何使用Chrome查看http请求与响应:

我话不多说就直接上图了:

open Chrome Developer Tools picture_01

open Chrome Developer Tools picture_02

open Chrome Developer Tools picture_03

open Chrome Developer Tools picture_04

 

 

如何使用Curl工具or 命令?

1.使用explainshell 查看一些curl的基本用法!

 

2.使用curl -help或者是进入到出curl的官网查看信息!

我下面贴出当时GitBash中用到Curl的截图,如下所示:

Http Request Details picture

Http Request Details picture

Http Request Details picture

 

前面的命令由于没有表示,我就简单介绍几个常用命令:

命令功能
-x就是自定义请求方法 POST,GET,PUT,PATCH,DELETE等请求方法!
-s无声或安静模式。不显示进度表或错误消息。
-H自定义头信息传递给服务器!
-v可以显示一次http通信的整个过程!
-dHTTP POST方式传送数据

以下命令我示范一下:

​ 本命令是用了-X 定义了请求方法 并且给定了一组自定义的请求头信息!

 

结尾

可能在有些地方,本人可能总结的不是很到位并且借鉴了别人对于HTTP请求相应的一些内容,如果有什么不对的地方还请指正!