HTTP/1.1协议知识小结

1.关于HTTP协议

? HTTP协议(HyperText Transfer Protocol)超文本传输协议。首先要明白HTTP是基于TCP的协议,先建立好TCP连接,才能发送HTTP请求。并且1.1版本默认开启Keep-Alive,这样建立的TCP连接可以在多次请求中复用?;挂靼譎TTP是无状态有会话的,使用Cookies可以创建有状态的会话。在请求头方面1.1版本增加更多的请求头和响应头信息用以增强HTTP的功能例如host主机头。

2.HTTP的请求报文

HTTP的请求报文主要由请求行请求头(请求首部),请求数据(正文主体)组成。

第一部分:请求行

| 请求行字段 | 说明 | 其它 |
| ---------------- | --------------- --------------- | ------------------------------------------------------------ |
| GET(RequestMethod) | 通常用于请求服务端上的某个资源 | 比如GET请求一个基于HTTP的API接口获得JSON字符串,字符串里面是一个列表,列表中包含你想要获取的信息 |
| POST(RequestMethod) | 主动告诉服务端一些信息,将客户端的信息提交到服务端 | 比如POST请求一个基于HTTP的API接口,提交想要提交的信息 |
| PUT(RequestMethod) | 向指定的资源位置上传最新的信息 | 暂无 |
| DELETE(RequestMethod) | 请求服务端删除Request-URI指定的资源 | 暂无 |
| URL | 统一资源定位符 | 要获取的资源的准确路径,由协议,主机IP或域名端口号, 具体目录地址构成 |
| 协议版本 | HTTP协议的版本号 | 比如HTTP/1.1 |

第二部分:请求头
请求头常见字段 说明
Host 告知服务端,请求的资源所在的互联网主机名和端口号
User-Agent 会将创建请求的的浏览器和用户代理名称传递给服务端
Accept 用来告知服务端,用户代理所支持的能够处理的流媒体的类型以及相对优先级
Accept-Encoding 用来告知服务端,用户代理所支持的内容编码以及优先顺序
Accept-Language 用来告诉服务端,用户能够处理的自然语言集
If-Modified-Since 告知服务端若If-Modified-Since字段的值早于资源更新时间则希望服务端处理该请求,反之返回304 Not Modified
Accept-Charset 优先的字符集
第三部分:请求数据
常见字段 说明
Allow 资源可支持的HTTP方法
Content-Encoding 实体使用的编码格式
Content-Language 实体使用的自然语言
Content-Length 实体的大小
Content-Location 替代对应资源的URL
Content-MD5 实体的报文摘要
Content-Range 实体的位置范围
Content-Type 实体的媒体类型
Expires 实体主体的过期时间
Last-Modified 资源的最后修改时间

3.HTTP的响应报文

HTTP响应报文主要由状态行响应首部,响应数据(正文实体)。

第一部分:状态行

状态行主要包含协议的版本号,状态返回码,状态信息。

常见的HTTP状态返回码 对应的状态信息 说明 其它
200 OK 请求成功 对成功的定义取决于HTTP的请求方法
301 Moved Permanently 永久移动,被请求的资源永久的移动到了新的URL 永久跳转
304 Not Modified 客户端所请求的资源未修改,服务器返回此状态码 暂无
400 Bad Request 客户端请求错误,服务器无法理解 语义有误或者请求参数有误
401 Unauthorized 当前请求需要用户进行身份验证 暂无
402 Payment Required 保留 暂无
403 Forbidden 服务器理解了客户端的请求,但是拒绝执行它 有可能是服务器或服务的权限设置不当
404 Not Found 请求失败,服务器无法根据客户端的请求找到相应资源 有可能是客户端请求了服务器上不存在的资源或者路径没写准确
500 Internal Server Error 服务器内部错误 服务器遇到了不知道如何处理的情况,可能是服务器的设置或者内部程序的问题
501 Not Implemented 服务器不支持客户端的请求方法 暂无
502 Bad Gateway 作为网关或代理的服务器尝试请求时,从远端获取到一个无效的响应 可能是反向代理服务器下面的节点出问题
503 Service Unavailable 服务器由于超载或维护,暂时无法处理客户端的请求 ,不可用 也可能是反向代理服务器后面没有可以提供服务的节点
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求 可能是反向代理服务器后面的服务器过载导致没有在指定的时间内返回数据
第二部分:响应首部
常见首部字段 说明
ETag 资源的匹配信息
Server HTTP服务器的安装信息
Vary 代理服务器缓存的管理信息
第三部分:正文实体

正文实体的首部字段可以参考HTTP请求报文中的正文实体首部

还有一些通用的首部字段如下
字段名 说明
Cache-Control 控制缓存的行为
Connection 逐跳首部,连接的管理
Date 创建报文的日期时间
Pragma 报文指令
Upgrade 升级为其它协议
Via 代理服务器的相关信息
Warning 错误通知

3.补充说明

关于状态码

204:成功处理请求但是响应报文不包含实体的主体部分。
206:通过发送范围请求头Range抓取到了资源的部分数据。(partial content)
301:永久重定向,永久跳转。
302:临时重定向,临时跳转。
304:服务端只返回响应头。
400:请求的报文中存在错误。
401:求需要认证或认证失败导致。
403:可能是访问了没有权限的资源导致的禁止访问。
404:访问路径错误或访问的资源已经不存在,服务器找不到客户端请求的指定页面。
412:客户端请求的etag和服务端的不一致。
416:所请求的范围无法满足。
499:服务器主动关闭客户端连接。
500:内部服务器错误,一般是服务器的设置或内部程序错误导致。
502:坏的网关,一般是代理服务器请求后端时后端服务不可用或没有完成响应导致的。
503:当前服务不可用,可能是服务器超载或?;蚍聪虼矸衿骱蠖宋蘅捎梅衿?。
504:网关超时一般是后端服务器没有在指定的时间完成处理请求。
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容

  • 本文是《图解HTTP》读书笔记的第二篇,主要包括此书的第六章内容,因为第六章的内容较多,而且比较重要,所以单独写为...
    lijiankun24阅读 1,361评论 0 6
  • 作者:李成文;标签: http首部 HTTP报文首部 HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容...
    广州芦苇科技web前端阅读 1,091评论 0 0
  • Web 页面的实现 Web 基于 HTTP 协议通信 客户端(Client)的 Web 浏览器从 Web 服务器端...
    毛圈阅读 1,079评论 0 2
  • HTTP 首部 HTTP 报文首部 HTTP 协议的请求和响应报文中必定包含 HTTP 首部。首部内容为客 户端和...
    Gu_Ran阅读 749评论 0 3
  • 寥寥星天方初醒, 似有微露映人归。 十里红妆梦十里, 相思红豆种相思。 小诗一首,请斧正
    山有木犀阅读 254评论 0 1