http知识点总结

tcp/ip

  • ip协议和ip地址需要区分 ip地址指具体地址 ip一般指ip协议,是一种把数据包传送给对方的协议

  • 为了确认把数据传送给对方 需要ip地址和MAC地址

  • ARP协议: IP间通信依赖MAC地址,MAC地址一般是不会变的,ARP协议可以根据IP地址反查出来MAC地址。

  • 微信截图_20210224140857.png
  • tcp通过三次握手来确保数据传输的可靠性 若握手阶段莫名中断 tcp协议会再次以相同的顺序发送相同的数据包

  • dns服务和http协议一样位于应用层 它提供域名到ip地址之间的解析服务

  1. 总结: ip负责传输 tcp确保可靠性 dns负责解析域名

  2. 总结:客户端首先根据dns服务器找到ip地址 然后根据http协议生成报文 然后通过tcp协议把数据分段 建立可靠连接 紧接着ip协议找到对方的通讯地址 tcp再次确认数据可靠性 然后组装分段数据 根据http协议解析报文 然后同样的过程传回数据

URI/URL

  1. uri(统一资源标识符):URI 用字符串标识某一互联网资源,而 URL表示资源的地点(互联 网上所处的位置)。可见 URL是 URI 的子集。

  2. 请求报文包含 请求方法 uri 协议 部首 和请求体

    部首包含 host connection content-type content-length cookie

  3. 响应报文 协议 状态码 部首(date content-type content-length Set-Cookie) 主体

请求类型

方法 说明 支持的 HTTP 协议版本
GET 获取资源 1.0、1.1
POST 传输实体主体 1.0、1.1
PUT 传输文件 1.0、1.1
HEAD 获得报文首部 1.0、1.1
DELETE 删除文件 1.0、1.1
OPTIONS 询问支持的方法 1.1
TRACE 追踪路径 1.1
CONNECT 要求用隧道协议连接代理 1.1
LINK(已废弃) 建立和资源之间的联系 1.0
UNLINE(已废弃) 断开连接关系 1.0

响应状态码

  • 1xx系列 正在处理请求

  • 2xx系列 成功

    • 200 ok 表示处理正常

    • 204 no content 请求成功但返回数据不包含主体

    • 206 Partial Content 表示进行范围请求

  • 3xx 重定向

    • 301 Moved Permanently 永久重定向

    • 302 Found 临时重定向

    • 303 See Other 该状态码表示由于请求对应的资源存在着另一个 URI 需要临时访问新的uri

    • 304 Not Modified 服务器端允许请求访 问资源,但未满足条件的情况 如协商缓存命中

    • 307 Temporary Redirect 临时重定向 与302区别是不会改变请求方法 302可能会把post改成get

  • 4xx 客户端错误

    • 400 Bad Request 请求报文中存在语法错误

    • 401 Unauthorized 请求需要通过http认证的认证信息

    • 403 Forbidden 服务器拒绝对资源的请求

    • 404 Not Found 服务器上无法找到请求的资源

  • 5xx 服务器错误

    • 500 Internal Server Error 服务器端在执行请求时发生了错误

    • 503 Service Unavailable 服务器暂时处于超负载或正在进行停机维护

http部首

HTTP/1.1 通用首部字段

  • Cache-Control 强缓存 能够控制缓存的行为

    • public 明确表明其他用户也可利用缓存(公有缓存)

    • private 响应只以特定的用户作为对象 (私有缓存)

    • no-cache 防止从缓存中返回过期的资源

    • no-store 缓存不能在本地存储请求或响应的任一部分 (完全无缓存)

    • s-maxage s-maxage 指令的功能和 max-age 指令的相同,只适用于代理服务器

    • max-age 如果判定缓存资源的缓 存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源 HTTP1.1如果存在expires 则max-age优先级大于expires 而http1.0则相反

    • min-fresh 要求缓存服务器返回至少还未过指定时间的缓存资源

    • max-stale 指示缓存资源,即使过期也照常接收

    • only-if-cached 示客户端仅在缓存服务器本地缓存目标资 源的情况下才会要求其返回

    • must-revalidate 代理会向源服务器再次验证即将返回的响 应缓存目前是否仍然有效

    • proxy-revalidate 要求所有的缓存服务器在接收到客户端带有该指 令的请求返回响应之前,必须再次验证缓存的有效性。

    • no-transform 无论是在请求还是响应中,缓存都不能改 变实体主体的媒体类型

  • Connection

    • 管理持久连接 (close,Keep-Alive)

    • 控制不再转发给代理的首部字段

  • Date 表明创建 HTTP 报文的日期和时间

  • Pragma 客户端会要求所有的中间服务器不返回缓存的资源。

  • Trailer 事先说明在报文主体后记录了哪些首部字段

  • Transfer-Encoding 传输报文主体时采用的编码方式

  • Upgrade 检测 HTTP 协议及其他协议是否可使用更高的 版本进行通信

  • Via 追踪客户端与服务器之间的请求和响应报文

  • Warning 告知用户一些与缓存相关的问题的警告

请求首部字段

  • Accept 通知服务器,用户代理能够处理的媒体类型及媒体 类型的相对优先级

  • Accept-Charset 用户代理支持的字符集及 字符集的相对优先顺序

  • Accept-Encoding 用户代理支持的内容编码及 内容编码的优先级顺序

  • Accept-Language 用户代理能够处理的自然 语言集

  • Authorization 用户代理的认证信息

  • Expect 期望出现的某种特定行为

  • From 用户代理的用户的电子邮件地址

  • Host 请求的资源所处的互联网主机名和端 口号

  • If-Match 属附带条件之一,它会告知服务器匹配资源所用 的实体标记(ETag)值

  • If-Modified-Since 属附带条件之一,它会告知服务器若 If-Modified-Since 字段值早于资源的更新时间,则希望能处理该请求(缓存 客户端用来与服务端确认是否命中缓存)

  • If-None-Match 只有在 If-None-Match 的字段值与 ETag 值不一致时,可处理 该请求(缓存)

  • If-Range 它告知服务器若指定的 IfRange 字段值(ETag 值或者时间)和请求资源的 ETag 值或时间相一 致时,则作为范围请求处理。反之,则返回全体资源。

  • If-Unmodified-Since 指定的请求资源只有在字段值内指定 的日期时间之后,未发生更新的情况下,才能处理请求 (与If-Modified-Since相反)

  • Max-Forwards 标记可经过服务器的最大数目 每经过一个服务器则减1 当服务器接收到 Max-Forwards 值为 0 的请求 时,则不再进行转发,而是直接返回响应

  • Proxy-Authorization 告知服务器认证所需要的信息

  • Range 适用于获取部分资源的请求范围

  • Referer 请求的原始资源的 URI

  • TE 客户端能够处理响应的传输编码方式及相对优先级

  • User-Agent 将创建请求的浏览器和用户代理名称等信息

响应部首字段

  • Accept-Ranges 告知客户端服务器是否能处理范围请求,以指定获取服务器端某个部分的资源(bytes可 none不可)

  • Age 源服务器在多久前创建了响应(单位s)

  • ETag 告知客户端实体标识

  • Location 将响应接收方引导至某个与请求URI 位置 不同的资源

  • Proxy-Authenticate 由代理服务器所要求的认证信息发送给客户端

  • Retry-After 告知客户端应该在多久之后再次发送请求

  • Server 当前服务器上安装的 HTTP 服务器应用程 序的信息

  • Vary 可对缓存进行控制 源服务器会向代理服务器传达关 于本地缓存使用方法的命令

  • WWW-Authenticate 用于 HTTP 访问认证

实体首部字段

  • Allow 知客户端能够支持 Request-URI 指定资源的所 有 HTTP 方法

  • Content-Encoding 告知客户端服务器对实体的主体部分选用的内容编码方式(gzip compress deflate identity)

  • Content-Language 实体主体使用的自然语言

  • Content-Length 实体主体部分的大小(字节)

  • Content-Location 与报文主体部分相对应的 URI

  • Content-MD5 客户端会对接收的报文主体执行相同的 MD5 算法 然后与首 部字段 Content-MD5 的字段值比较(用于检查报文主体是否完整)

  • Content-Range 针对范围请求

  • Content-Type 实体主体内对象的媒体类型

  • Expires 会将资源失效的日期告知客户端

  • Last-Modified 指明资源最终修改的时间

为 Cookie 服务的首部字段

  • set-cookie 响应首部字段 开始状态管理所使用的Cookie信息
    • NAME 赋予 Cookie 的名称和其值(必需项)

    • expires Cookie 的有效期(若不明确指定则默认为浏览器关闭前为止)

    • path 将服务器上的文件目录作为Cookie的适用对象

    • domain 作为 Cookie 适用对象的域名

    • Secure 仅在 HTTPS 安全通信时才会发送 Cookie

    • HttpOnly 使 Cookie 不能被 JavaScript 脚本访问

HTTPS

  • http缺点
    • 通信使用明文可能会被窃听 => 使用加密通信

    • 不验证通信方的身份就可能遭遇伪装 => 采用证书进行认证

    • 无法证明报文完整性,可能已遭篡改 => MD5 和 SHA-1 等散列值校验证书的数字签名

  • https
    • HTTP 加上加密处理和认证以及完整性保护后即是HTTPS

    • HTTPS 是身披 SSL 外壳的 HTTP http -> ssl ->tcp -> ip

    • 相互交换密钥的公开密钥加密技术

      • https采用混合加密机制 存在公钥和私钥 公钥可以发布公开,但是公钥加密过的数据只有私钥才可以解密 客户端拿到公钥后对数据进行加密 只有服务端的私钥才可以解密
    • 证明公开密钥正确性的证书

    • 流程 : 服务器首先把带有公钥的证书发送给客户端 然后客户端通过浏览器内置公钥确认证书的有效性 然后根据公钥加密一个密钥(密码串)然后发送给服务端(只有服务端的私钥才可以解密公钥加密过的数据) 服务端使用私钥解密这个密钥 然后生成密钥 然后双方根据这个密钥来进行通信 首先使用非对称加密方式传输对称加密的密码 然后使用对称加密的密钥进行通信

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