http请求方法、请求报文、响应报文、部首、响应部首、状态码、keep-alive

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT

GET: 通常用于请求服务器发送某些资源

HEAD: 请求资源的头部信息, 并且这些头部与 HTTP GET 方法请求时返回的一致. 该请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载, 以此可以节约带宽资源

OPTIONS: 用于获取目的资源所支持的通信选项

POST: 发送数据给服务器

PUT: 用于新增资源或者使用请求中的有效负载替换目标资源的表现形式

DELETE: 用于删除指定的资源

PATCH: 用于对资源进行部分修改

CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

TRACE: 回显服务器收到的请求,主要用于测试或诊断

PUT和POST都是给服务器发送新增资源,有什么区别?

PUT 和POST方法的区别是,PUT方法是幂等的:连续调用一次或者多次的效果相同(无副作用),而POST方法是非幂等的。除此之外还有一个区别,通常情况下,PUT的URI指向是具体单一资源,而POST可以指向资源集合。

PUT和PATCH都是给服务器发送修改资源,有什么区别?

PUT和PATCH都是更新资源,而PATCH用来对已知资源进行局部更新。

http的请求报文是什么样的?

请求报文有4部分组成:请求行、请求头部、空行、请求体

请求行包括:请求方法字段、URL字段、HTTP协议版本字段。它们用空格分隔。例如,GET /index.html HTTP/1.1。

请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔

1.User-Agent:产生请求的浏览器类型。

2.Accept:客户端可识别的内容类型列表。

3.Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

请求体: post put等请求携带的数据

http的响应报文是什么样的?

请求报文有4部分组成:响应行、响应头、空行、响应体

响应行: 由协议版本,状态码和状态码的原因短语组成,例如HTTP/1.1 200 OK。

响应头:响应部首组成

响应体:服务器响应的数据

聊一聊HTTP的部首有哪些?

内容很多,重点看标『✨』内容

通用首部字段(General Header Fields):请求报文和响应报文两方都会使用的首部

Cache-Control  控制缓存 ✨

Connection 连接管理、逐条首部 ✨

Upgrade  升级为其他协议

via 代理服务器的相关信息

Wraning 错误和警告通知

Transfor-Encoding 报文主体的传输编码格式 ✨

Trailer 报文末端的首部一览

Pragma 报文指令

Date 创建报文的日期

请求首部字段(Reauest Header Fields):客户端向服务器发送请求的报文时使用的首部

Accept 客户端或者代理能够处理的媒体类型 ✨

Accept-Encoding 优先可处理的编码格式

Accept-Language 优先可处理的自然语言

Accept-Charset 优先可以处理的字符集

If-Match 比较实体标记(ETage) ✨

If-None-Match 比较实体标记(ETage)与 If-Match相反 ✨

If-Modified-Since 比较资源更新时间(Last-Modified)✨

If-Unmodified-Since比较资源更新时间(Last-Modified),与 If-Modified-Since相反 ✨

If-Rnages 资源未更新时发送实体byte的范围请求

Range 实体的字节范围请求 ✨

Authorization web的认证信息 ✨

Proxy-Authorization 代理服务器要求web认证信息

Host 请求资源所在服务器 ✨

From 用户的邮箱地址

User-Agent 客户端程序信息 ✨

Max-Forwrads 最大的逐跳次数

TE 传输编码的优先级

Referer 请求原始放的url

Expect 期待服务器的特定行为

响应首部字段(Response Header Fields):从服务器向客户端响应时使用的字段

Accept-Ranges 能接受的字节范围

Age 推算资源创建经过时间

Location 令客户端重定向的URI ✨

vary  代理服务器的缓存信息

ETag 能够表示资源唯一资源的字符串 ✨

WWW-Authenticate 服务器要求客户端的验证信息

Proxy-Authenticate 代理服务器要求客户端的验证信息

Server 服务器的信息 ✨

Retry-After 和状态码503 一起使用的首部字段,表示下次请求服务器的时间

实体首部字段(Entiy Header Fields):针对请求报文和响应报文的实体部分使用首部

Allow 资源可支持http请求的方法 ✨

Content-Language 实体的资源语言

Content-Encoding 实体的编码格式

Content-Length 实体的大小(字节)

Content-Type 实体媒体类型

Content-MD5 实体报文的摘要

Content-Location 代替资源的yri

Content-Rnages 实体主体的位置返回

Last-Modified 资源最后的修改资源 ✨

Expires 实体主体的过期资源 ✨

聊一聊HTTP的状态码有哪些?

2XX 成功

200 OK,表示从客户端发来的请求在服务器端被正确处理 ✨

201 Created 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立

202 Accepted 请求已接受,但是还没执行,不保证完成请求

204 No content,表示请求成功,但响应报文不含实体的主体部分

206 Partial Content,进行范围请求 ✨

3XX 重定向

301 moved permanently,永久性重定向,表示资源已被分配了新的 URL

302 found,临时性重定向,表示资源临时被分配了新的 URL ✨

303 see other,表示资源存在着另一个 URL,应使用 GET 方法丁香获取资源

304 not modified,表示服务器允许访问资源,但因发生请求未满足条件的情况

307 temporary redirect,临时重定向,和302含义相同

4XX 客户端错误

400 bad request,请求报文存在语法错误 ✨

401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息 ✨

403 forbidden,表示对请求资源的访问被服务器拒绝 ✨

404 not found,表示在服务器上没有找到请求的资源 ✨

408 Request timeout, 客户端请求超时

409 Confict, 请求的资源可能引起冲突

5XX 服务器错误

500 internal sever error,表示服务器端在执行请求时发生了错误 ✨

501 Not Implemented 请求超出服务器能力范围,例如服务器不支持当前请求所需要的某个功能,或者请求是服务器不支持的某个方法

503 service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求

505 http version not supported 服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本

同样是重定向307,303,302的区别?

302是http1.0的协议状态码,在http1.1版本的时候为了细化302状态码又出来了两个303和307。

303明确表示客户端应当采用get方法获取资源,他会把POST请求变为GET请求进行重定向。

307会遵照浏览器标准,不会从post变为get。

HTTP的keep-alive是干什么的?

在早期的HTTP/1.0中,每次http请求都要创建一个连接,而创建连接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。在后来的HTTP/1.0中以及HTTP/1.1中,引入了重用连接的机制,就是在http请求头中加入Connection: keep-alive来告诉对方这个请求响应完成后不要关闭,下一次咱们还用这个请求继续交流。协议规定HTTP/1.0如果想要保持长连接,需要在请求头中加上Connection: keep-alive。

keep-alive的优点:

较少的CPU和内存的使用(由于同时打开的连接的减少了)

允许请求和应答的HTTP管线化

降低拥塞控制 (TCP连接减少了)

减少了后续请求的延迟(无需再进行握手)

报告错误无需关闭TCP连

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

推荐阅读更多精彩内容

  • 接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西...
    方志朋阅读 596评论 0 3
  • Web 页面的实现 Web 基于 HTTP 协议通信 客户端(Client)的 Web 浏览器从 Web 服务器端...
    毛圈阅读 1,021评论 0 2
  • 本文是《图解HTTP》读书笔记的第二篇,主要包括此书的第六章内容,因为第六章的内容较多,而且比较重要,所以单独写为...
    lijiankun24阅读 1,311评论 0 6
  • 后来 我喜欢听海 吹风 喜欢看天空 只因它们 都曾经 与你相伴 都藏有 你不经意 的踪迹 哪怕 我不曾...
    浅戚阅读 350评论 4 6
  • 文/MY麦子 01 昨天,住在城西的大学舍友L过来找我了。算一算,我们有大半年没见面了。 一见如初,我们还是会像大...
    MY麦子阅读 4,333评论 56 226