关于HTTP

HTTP(HyperText Transfer Protocol):它是一个服务器(Server)客户端(Client)之间请求与响应的标准,客户端发起一个HTTP请求,服务器端默认在80端口进行接收,然后服务器返回响应内容,客户端再下载响应内容;

在这里,HTTP就起到了一个指导双方如何沟通的作用,比如客户端输错一个网址字母,服务器端返回404告诉你没有找到这个网址;服务器宕机了,会返回500告诉你服务器无法处理请求;

下面我们来做一个HTTP请求与响应的示例:

打开bash,我们通过curl来创造请求(curl是一种利用URL语法在命令行方式下工作的开源文件传输工具),输入命令:curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"

这相当于用get方式发送了一个请求,请求的内容为:

GET / HTTP/1.1

Host: www.baidu.com

User-Agent: curl/7.54.0

Accept: */*

Frank: xxx


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

这相当于用post方式发送了一个请求,请求的内容为:

POST / HTTP/1.1

Host: www.baidu.com

User-Agent: curl/7.54.0

Accept: */*

Frank: xxx

Content-Length: 10

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


1234567890

所以,请求格式就包含以下几个部分:

1 动词 路径 协议/版本

2 key : value

3 空行

4 上传的数据

注意:a. 请求最多包含四部分,最少三部分,也就是第四部分可以没有

b. 动词包括 get,post,put(整体更新),patch(局部更新),delete(删除)

c. 路径包含查询字符串,不包含锚点,不写默认为“/”’

d. 第二部分的Content-Type标注了第四部分的数据格式

e. 第三部分永远为空

下面我们通过Chrome来发送请求:

1.打开 Network

2.地址栏输入网址

3.在 Network 点击,然后查看 Request Headers,点击「view source」就看到了请求内容

响应

上面第一个请求示例所得到响应内容是:

HTTP/1.1 200 OK

Accept-Ranges: bytes

Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

Connection: Keep-Alive

Content-Length: 2443

Content-Type: text/html

Date: Tue, 10 Oct 2017 09:14:05 GMT

Etag: "5886041d-98b"

Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT

Pragma: no-cache

Server: bfe/1.0.8.18

Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/


<!DOCTYPE html> 后面省略......

所以响应内容的格式就是:

1 协议/版本 状态码 状态解释

2 key : value

3 空行

4 客户端要下载的内容

再回到刚才的Chrome页面,查看 Response Headers,就可以看到响应内容


对于响应内容中的HTTP状态码,它的第一位数字就代表了响应的状态

1XX:表示服务器已接受请求,但需要继续处理,HTTP协议中未定义,所以禁止服务器使用

2XX:表示成功;200 OK :请求已成功,请求所希望的响应头或数据体将随此响应返回;

           204 No Content:服务器成功处理了请求,没有返回任何内容

3XX:表示重定向,重定向目标会在本次响应的Location域中指明;301代表资源永久移走,302代表临时移走

4XX:表示客户端错误;401,403,404

5XX:表示服务器错误;500,502

详细内容请访问 https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81

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

推荐阅读更多精彩内容