8-1 HTTP 相关的面试

1.你都了解那些状态吗,他们的含义是什么

1.信息代码:1xx
2.成功代码:2xx
3.重定向:3xx
4.客户端错误:4xx
5.服务器错误:5xx

2.建立HTTP连接流程

http & https & 网络请求过程

Client 向Server发送请求连接的报文 报文首部 SYN=1,该链接不携带任何数据 但是必须占用一个序号  序号 seq = x

Server向Client发送。接受链接的报文。报文头部 SYN=1  ACK = 1  该链接不携带任何数据 但是必须占用一个序号。序号 seq = y   ack = x + 1

然后Client 向Server 发送一个确认报文段  报文头部  ACK = 1   报文可以携带参数 也可以不携带参数  不携带参数 不消耗一个 序号。seq = x + 1   ack = y + 1

然后就可以进行HTTP请求。Client请求报文

完成之后需要进行4次挥手断开连接

3.TCP为什么是3次


4.HTTP的特点

1.无连接 HTTP的链接室友建立连接和释放链接过程
 HTTP的持久链接
2.无状态 多次发送HTTP请求的时候服务器是不知道是不是同一个客户发送的请求
 Cookie 和 Session。解决HTTP无状态的特点

5.持久链接

非持久链接。每次请求都要进行3次握手和4次挥手
持久链接。多个请求是在同一个链路上进行的不需要每次 进行3次握手和4次挥手

持久链接需要哪些头部字段呢?
Connection : keep-alive   客户端 希望保持链接
time:20. 20秒内
max:10。10次

怎样判断一个请求是否结束?
1.我们的请求报文/响应报文。 响应报文的头部字段 会有Content-length:1024 server段返回响应数据的大小 客户端根据接收数据的字节数是否到达 1024 来判断HTTP请求是否结束

2.chuncked 相应报文当中头部字段 chuncked 来判断 请求是否结束 最后一个块 chuncked 是空的

6.Charles的原理是什么?

通过代理。中间人攻击?
就是做一个中间人。 请求和响应 都通过 Charles

7.get post的区别

get:获取资源 安全的 幂等的 可缓存的
?& 拼接在后面 
参数的长度限制为2048个字符


post:不安全的 非幂等的  不可缓存的
放在body体里面
POST 参数一般没有限制

安全性值得是 不应该引起服务器的数据变化
幂等指的是:多次请求的数据结果一样


常用的HTTP请求头

协议头 说明 示例 状态
Accept 可接受的响应内容类型(Content-Types)。 Accept: text/plain 固定
Accept-Charset 可接受的字符集 Accept-Charset: utf-8 固定
Accept-Encoding 可接受的响应内容的编码方式。 Accept-Encoding: gzip, deflate 固定
Accept-Language 可接受的响应内容语言列表。 Accept-Language: en-US 固定
Accept-Datetime 可接受的按照时间来表示的响应内容版本 Accept-Datetime: Sat, 26 Dec 2015 17:30:00 GMT 临时
Authorization 用于表示HTTP协议中需要认证资源的认证信息 Authorization: Basic OSdjJGRpbjpvcGVuIANlc2SdDE== 固定
Cache-Control 用来指定当前的请求/回复中的,是否使用缓存机制。 Cache-Control: no-cache 固定
Connection 客户端(浏览器)想要优先使用的连接类型 Connection: keep-alive Connection: Upgrade 固定
Cookie 由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议Cookie Cookie: $Version=1; Skin=new; 固定:标准
Content-Length 以8进制表示的请求体的长度 Content-Length: 348 固定
Content-MD5 请求体的内容的二进制 MD5 散列值(数字签名),以 Base64 编码的结果 Content-MD5: oD8dH2sgSW50ZWdyaIEd9D== 废弃
Content-Type 请求体的MIME类型 (用于POST和PUT请求中) Content-Type: application/x-www-form-urlencoded 固定
Date 发送该消息的日期和时间(以RFC 7231中定义的"HTTP日期"格式来发送) Date: Dec, 26 Dec 2015 17:30:00 GMT 固定
Expect 表示客户端要求服务器做出特定的行为 Expect: 100-continue 固定
From 发起此请求的用户的邮件地址 From: user@itbilu.com 固定
Host 表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。 Host: www.itbilu.com:80 Host: www.itbilu.com 固定
If-Match 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要用于像 PUT 这样的方法中,仅当从用户上次更新某个资源后,该资源未被修改的情况下,才更新该资源。 If-Match: "9jd00cdj34pss9ejqiw39d82f20d0ikd" 固定
If-Modified-Since 允许在对应的资源未被修改的情况下返回304未修改 If-Modified-Since: Dec, 26 Dec 2015 17:30:00 GMT 固定
If-None-Match 允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified ),参考 超文本传输协议 的实体标记 If-None-Match: "9jd00cdj34pss9ejqiw39d82f20d0ikd" 固定
If-Range 如果该实体未被修改过,则向返回所缺少的那一个或多个部分。否则,返回整个新的实体 If-Range: "9jd00cdj34pss9ejqiw39d82f20d0ikd" 固定
If-Unmodified-Since 仅当该实体自某个特定时间以来未被修改的情况下,才发送回应。 If-Unmodified-Since: Dec, 26 Dec 2015 17:30:00 GMT 固定
Max-Forwards 限制该消息可被代理及网关转发的次数。 Max-Forwards: 10 固定
Origin 发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。 Origin: http://www.itbilu.com 固定: 标准
Pragma 与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生。 Pragma: no-cache 固定
Proxy-Authorization 用于向代理进行认证的认证信息。 Proxy-Authorization: Basic IOoDZRgDOi0vcGVuIHNlNidJi2== 固定
Range 表示请求某个实体的一部分,字节偏移以0开始。 Range: bytes=500-999 固定
Referer 表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer其实是Referrer这个单词,但RFC制作标准时给拼错了,后来也就将错就错使用Referer了。 Referer: http://itbilu.com/nodejs 固定
TE 浏览器预期接受的传输时的编码方式:可使用回应协议头Transfer-Encoding中的值(还可以使用"trailers"表示数据传输时的分块方式)用来表示浏览器希望在最后一个大小为0的块之后还接收到一些额外的字段。 TE: trailers,deflate 固定
User-Agent 浏览器的身份标识字符串 User-Agent: Mozilla/…… 固定
Upgrade 要求服务器升级到一个高版本协议。 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 固定
Via 告诉服务器,这个请求是由哪些代理发出的。 Via: 1.0 fred, 1.1 itbilu.com.com (Apache/1.1) 固定
Warning 一个一般性的警告,表示在实体内容体中可能存在错误。 Warning: 199 Miscellaneous warning 固定

常用的HTTP响应头

响应头 说明 示例 状态
Access-Control-Allow-Origin 指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: * 临时
Accept-Patch 指定服务器所支持的文档补丁格式 Accept-Patch: text/example;charset=utf-8 固定
Accept-Ranges 服务器所支持的内容范围 Accept-Ranges: bytes 固定
Age 响应对象在代理缓存中存在的时间,以秒为单位 Age: 12 固定
Allow 对于特定资源的有效动作; Allow: GET, HEAD 固定
Cache-Control 通知从服务器到客户端内的所有缓存机制,表示它们是否可以缓存这个对象及缓存有效时间。其单位为秒 Cache-Control: max-age=3600 固定
Connection 针对该连接所预期的选项 Connection: close 固定
Content-Disposition 对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。 Content-Disposition: attachment; filename="fname.ext" 固定
Content-Encoding 响应资源所使用的编码类型。 Content-Encoding: gzip 固定
Content-Language 响就内容所使用的语言 Content-Language: zh-cn 固定
Content-Length 响应消息体的长度,用8进制字节表示 Content-Length: 348 固定
Content-Location 所返回的数据的一个候选位置 Content-Location: /index.htm 固定
Content-MD5 响应内容的二进制 MD5 散列值,以 Base64 方式编码 Content-MD5: IDK0iSsgSW50ZWd0DiJUi== 已淘汰
Content-Range 如果是响应部分消息,表示属于完整消息的哪个部分 Content-Range: bytes 21010-47021/47022 固定
Content-Type 当前内容的MIME类型 Content-Type: text/html; charset=utf-8 固定
Date 此条消息被发送时的日期和时间(以RFC 7231中定义的"HTTP日期"格式来表示) Date: Tue, 15 Nov 1994 08:12:31 GMT 固定
ETag 对于某个资源的某个特定版本的一个标识符,通常是一个 消息散列 ETag: "737060cd8c284d8af7ad3082f209582d" 固定
Expires 指定一个日期/时间,超过该时间则认为此回应已经过期 Expires: Thu, 01 Dec 1994 16:00:00 GMT 固定: 标准
Last-Modified 所请求的对象的最后修改日期(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示) Last-Modified: Dec, 26 Dec 2015 17:30:00 GMT 固定
Link 用来表示与另一个资源之间的类型关系,此类型关系是在RFC 5988中定义 Link:; rel="alternate" 固定
Location 用于在进行重定向,或在创建了某个新资源时使用。 Location: http://www.itbilu.com/nodejs 固定
P3P P3P策略相关设置 P3P: CP="This is not a P3P policy! 固定
Pragma 与具体的实现相关,这些响应头可能在请求/回应链中的不同时候产生不同的效果 Pragma: no-cache 固定
Proxy-Authenticate 要求在访问代理时提供身份认证信息。 Proxy-Authenticate: Basic 固定
Public-Key-Pins 用于防止中间攻击,声明网站认证中传输层安全协议的证书散列值 Public-Key-Pins: max-age=2592000; pin-sha256="……"; 固定
Refresh 用于重定向,或者当一个新的资源被创建时。默认会在5秒后刷新重定向。 Refresh: 5; url=http://itbilu.com
Retry-After 如果某个实体临时不可用,那么此协议头用于告知客户端稍后重试。其值可以是一个特定的时间段(以秒为单位)或一个超文本传输协议日期。 * 示例1:Retry-After: 120 * 示例2: Retry-After: Dec, 26 Dec 2015 17:30:00 GMT 固定
Server 服务器的名称 Server: nginx/1.6.3 固定
Set-Cookie 设置HTTP cookie Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1 固定: 标准
Status 通用网关接口的响应头字段,用来说明当前HTTP连接的响应状态。 Status: 200 OK
Trailer Trailer用户说明传输中分块编码的编码信息 Trailer: Max-Forwards 固定
Transfer-Encoding 用表示实体传输给用户的编码形式。包括:chunkedcompressdeflategzipidentity Transfer-Encoding: chunked 固定
Upgrade 要求客户端升级到另一个高版本协议。 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 固定
Vary 告知下游的代理服务器,应当如何对以后的请求协议头进行匹配,以决定是否可使用已缓存的响应内容而不是重新从原服务器请求新的内容。 Vary: * 固定
Via 告知代理服务器的客户端,当前响应是通过什么途径发送的。 Via: 1.0 fred, 1.1 itbilu.com (nginx/1.6.3) 固定
Warning 一般性警告,告知在实体内容体中可能存在错误。 Warning: 199 Miscellaneous warning 固定
WWW-Authenticate 表示在请求获取这个实体时应当使用的认证模式。 WWW-Authenticate: Basic 固定
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • 伟哥有一对好看的兔门牙,笑的时候惹人怜爱。 夜里的早晨,他看着血呼漓淋的右手,几个狗咬的血齿印...
    天华的围脖阅读 120评论 0 1
  • 小时候 我从不怀疑我的能力 我幻想着 天马行空、五彩缤纷的世界 我憧憬着 富裕、幸福的生活 而如今 我再也,没有勇...
    不想变胖啊啊啊阅读 471评论 10 2
  • 一整天都在忙,几乎每分钟斗透着忙碌的影子。昨天列好的计划,有的被执行了,有的被打乱了,还没来得及实施。就如写联系册...
    陌上桑兰阅读 69评论 0 0
  • 刚刚和爸爸通完电话,还是没有直接开口。挂断后,想了想,编辑了一条短信发过去:爸爸,我爱你。我是真的很爱你。以此文献...
    徐徐吖阅读 924评论 0 2
  • 今天发生了什么? 今天学习了一天的PPT课程, 我的感受。PPT可以将演讲产生更大的影响力。 我的思考 将图片文字...
    樂毅_8196阅读 170评论 2 0