HTTP请求与响应&curl命令

HTTP

什么是HTTP协议?

在我们进行网页的浏览过程中,我们不断地通过浏览器向对应的服务器发送请求,并且将服务器响应回来的内容下载并渲染到页面上,最终形成所看到的页面。而指导浏览器和服务器进行请求与响应的就是HTTP协议。

HTTP的请求

在Git Bash环境下 运行以下代码

curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"

最终出现了如下图的代码,这就是HTTP的请求内容

 POST / HTTP/1.1  --请求行
 Host: www.baidu.com   请求头--{
 User-Agent: curl/7.63.0
 Accept: */*
 Frank: xxx
 Content-Length: 10
 Content-Type: application/x-www-form-urlencoded }--请求头
       -- 空行
 [10 bytes data] --上传的数据

现在我们对上面的HTTP请求的组成进行分析:

第一部分:请求行

POST / HTTP/1.1
请求行的组成为:请求方式 请求路径(路径包括查询参数,但不包含锚点) 协议/协议版本

第二部分:请求头

 Host: www.baidu.com
 User-Agent: curl/7.63.0
 Accept: */*
 Frank: xxx
 Content-Length: 10
 Content-Type: application/x-www-form-urlencoded

请求头的内容主要是关于此次请求的一些信息,这些信息由多组键值对组成。

第三部分:空行

 Content-Type: application/x-www-form-urlencoded

 [10 bytes data]

可以看出上面这行代码中间有一个 空行 ,这是HTTP请求的第三部分,没有太多的含义,主要用于分割第二部分和第四部分。

第四部分:请求数据(此部分非必须)

[10 bytes data] //这行代码就是传入的数据"1234567890"

HTTP的请求方式

  • GET :请求指定的页面信息,并返回实体主体。
  • HEAD :类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
  • POST :向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT : 从客户端向服务器传送的数据取代指定的文档的内容。
  • PATCH :是对 PUT 方法的补充,用来对已知资源进行局部更新 。
  • DELETE :请求服务器删除指定的页面。
  • OPTIONS :允许客户端查看服务器的性能。
  • CONNECT :HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
  • TRACE :回显服务器收到的请求,主要用于测试或诊断。
    其中 GET POST HEAD 是HTTP1.0定义的
    其他请求方法则是在HTTP1.1中新增的

HTTP的响应

在Git Bash环境下 运行以下代码

curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"

以下的内容即为此次请求的HTTP响应

 HTTP/1.1 302 Found --状态行
 Connection: Keep-Alive 响应头--{
 Content-Length: 17931
 Content-Type: text/html
 Date: Tue, 23 Jul 2019 09:21:19 GMT  
 Etag: "54d9748e-460b"
 Server: bfe/1.0.8.18 }--响应头
            -- 空行
 [3824 bytes data]  --响应实体

现在我们对上面的HTTP响应的组成进行分析:

第一部分:状态行

HTTP/1.1 302 Found
状态行的组成主要是:
协议/协议版本 状态码 状态码对应的信息

第二部分:响应头

 Connection: Keep-Alive
 Content-Length: 17931
 Content-Type: text/html
 Date: Tue, 23 Jul 2019 09:21:19 GMT
 Etag: "54d9748e-460b"
 Server: bfe/1.0.8.18

响应头主要的内容是该次响应的一些信息,也是由多组键值对组成。

第三部分:空行

和HTTP请求的结构类似,响应的第三部分也是空行,主要用于分割

第四部分:响应实体

 [3824 bytes data]

上面这行代码指代的就是该次请求获取的响应实体,是一个大小为3824字节的信息。

Chrome中使用开发者工具查看请求和响应信息

1.F12 进入 开发者工具
2.进入Network
3.输入网址进入网页,或者刷新当前网页
4.选择文件


image.png

5.Requset Headers查看请求的内容;Respons Headers查看响应的内容
6.点击view source !!!

curl

curl的作用

curl是linux系统中利用url规则在命令行中进行文件传输的工具。支持文件的上传、下载功能,是比较常用到的linux命令。在进行开发过程中,可以使用curl对接口进行测试,获取接口返回的数据。

curl的使用方法

  • 通过curl获取页面:直接接一个url
$ curl https://www.baidu.com
  • 发送GET请求:直接在url中通过?传递查询参数
$ curl https://www.baidu.com/s?wd=dd&ie=UTF-8
  • 发送POST请求:
$ curl -X POST -d "1234567890"  -- "https://www.baidu.com"

-X POST :通过 -X 来自定义指定一个请求方式
-d "1234567890" : -d 可以传入POST请求时要上传的数据

  • 抓取一个页面到文件中
$ curl -o file.html https://www.baidu.com
  • 连接重定向自动跳转
$ curl -L https://www.baidu.com

假如:https://www.baidu.com重定向后,通过 -L 可以自动跳转到新的网页中。

curl的命令参数

详见:https://www.explainshell.com/explain/1/curl

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353