http

1.OSI 七层模型指什么 (难度***)

开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织(ISO)提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。

|OSI 模型|||
--|--|--|--
|数据单元|层|功能
主机层|Data(数据)|7. 应用层|网络进程到应用程序。针对特定应用规定各层协议、时序、表示等,进行封装 。在端系统中用软件来实现,如HTTP等
||6. 表示层|数据表示形式,加密和解密,把机器相关的数据转换成独立于机器的数据。规定数据的格式化表示 ,数据格式的转换等
||5. 会话层|主机间通讯,管理应用程序之间的会话。规定通信时序 ;数据交换的定界、同步,创建检查点等
|Segments(数据段)|4. 传输层|在网络的各个节点之间可靠地分发数据包。所有传输遗留问题;复用;流量;可靠
媒介层|网络分组/数据报文|3. 网络层|在网络的各个节点之间进行地址分配、路由和(不一定可靠的)分发报文。路由( IP寻址);拥塞控制。
|Bit/Frame(数据帧)|2. 数据链路层|一个可靠的点对点数据直链。检错与纠错(CRC码);多路访问;寻址
|Bit(比特)|1. 物理层|一个(不一定可靠的)点对点数据直链。定义机械特性;电气特性;功能特性;规程特性

2.HTTP 的工作原理是什么? (难度***)

HTTP 是基于 TCP/IP 协议的应用层协议,浏览器向服务器发送URI,服务器发回HTML。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:
(1) 建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80
(2) Web浏览器向Web服务器发送请求命令
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令
例如:GET/sample/hello.jsp HTTP/1.1
(3) Web浏览器发送请求头信息
浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
(4) Web服务器应答
客户机向服务器发出请求后,服务器会客户机回送应答,
HTTP/1.1 200 OK
应答的第一部分是协议的版本号和应答状态码
(5) Web服务器发送应答头信息
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。
(6) Web服务器向浏览器发送数据
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据
(7) Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码
Connection:keep-alive
TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

参考HTTP深入浅出 http请求-尹京昱-cnblog

3.URI 的格式是什么?常见的协议有哪些 (难度***)

URI是 Uniform Resource Identifier的简称,是统一资源标识符。
格式是:



其中,
登录信息这一项是可选项,现在一般都不用了。

常见的协议有HTTP协议,还有ftp、mailto、telnet、file等。

4.HTTP 协议有几种和服务器交互的方法 (难度***)

一般有GET、POST、DELETE、PUT这几种方法。
一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。PUT用于上传文件,DELETE用于删除文件。

5.状态码200,301, 304,403,404,500,503分别代表什么意思 (难度****)

200 代表ok,表示从客户端发来的请求在服务器端被正常处理了。
301 代表永久性重定向,表示请求的资源已经被分配了新的URI,以后应使用资源现在所指的URI。
304 代表未修改,表示自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
403 表示客户端对请求资源的访问被服务器拒绝了。
404 代表文件找不到,表明服务器上无法找到请求的资源。也可以在服务器拒绝请求但是找不到理由时使用。
500 表明服务器端在执行请求时发生了错误。
503 表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

6.报文有哪几部分组成? (可选 难度****)

用于HTTP协议交互的信息被称为HTTP报文。客户端的HTTP报文叫做请求报文,服务端的叫做响应报文。
HTTP报文本身是由多行数据构成的字符串文本。大致可分为报文首部和报文主体两块。通常,并不一定要有报文主体。
如下图示:


报文首部:服务器端或客户端需处理的请求或响应的内容及属性。
报文主体:应该发送的数据。

7.请求头的格式和作用是什么?给个范例截图说明 (可选 难度****)

请求头的格式:

<method> <request-UTL> <version> //起始行,包括方法、URI、HTTP版本
<headers>

作用:用于说明请求的附加信息、客户端信息、对响应内容相关的优先级等内容。
访问cn.bing.com网站时,请求头如图示:

8.首部的请求格式和作用是什么?给个范例截图说明 (可选 难度****)

请求首部组成如下图:



请求行的格式:

<method> <request-UTL> <version>

响应首部组成如下图:



响应行的格式:

<version> <status><reason-phrase>

HTTP首部字段是由首部字段名和字段值构成的,中间用冒号分隔。
格式是:

首部字段名: 字段值

分为四种类型。分别是通用首部字段,请求首部字段,响应首部字段和实体首部字段这四种。
HTTP的首部字段是构成HTTP报文的要素之一,起到传递重要信息的作用,可以给浏览器和服务器提供报文主体大小、所用的语言、认证信息等内容。
如图示:

9.主体的作用是什么?给个范例(可选 截图说明难度****)

报文主体是HTTP报文的负荷。就是HTTP要传输的内容。
HTTP报文主体可以承载很多类型的数字数据:图片、视频、HTML文档、软件应用程序等。
例子如下图所示:


10.简述浏览器缓存是如何控制的(可选 难度*****)

http报文首部字段中与缓存相关的字段:
1.通用首部字段



2.请求首部字段



3.响应首部字段

4.实体首部字段

其中,

  • Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。这个时间是服务器的时间,所以有时候客户端时间和服务器时间不一致时并不能及时缓存。
  • Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。
    Cache-Control也是一个通用首部字段,这意味着它能分别在请求报文和响应报文中使用。在RFC中规范了 Cache-Control 的格式为:
"Cache-Control" ":" cache-directive

作为请求首部时,cache-directive 的可选值有:

作为响应首部时,cache-directive 的可选值有:

Cache-Control 允许自由组合可选值,例如:
Cache-Control: max-age=3600, must-revalidate

它意味着该资源是从原服务器上取得的,且其缓存(新鲜度)的有效时间为一小时,在后续一小时内,用户重新访问该资源则无须发送请求。 当然这种组合的方式也会有些限制,比如 no-cache 就不能和 max-age、min-fresh、max-stale 一起搭配使用。

  • Last-Modified:标示这个响应资源的最后修改时间。web服务器在响应请求时,告诉浏览器资源的最后修改时间。
  • If-Modified-Since:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Last-Modified声明,则再次向web服务器请求时带上头 If-Modified-Since,表示请求时间。web服务器收到请求后发现有头If-Modified-Since 则与被请求资源的最后修改时间进行比对。若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304 (无需包体,节省浏览),告知浏览器继续使用所保存的cache。
  • Etag:web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器觉得)。Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。
  • If-None-Match:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Etage声明,则再次向web服务器请求时带上头If-None-Match (Etag的值)。web服务器收到请求后发现有头If-None-Match 则与被请求资源的相应校验串进行比对,决定返回200或304。
  • 浏览器缓存行为还与用户的行为有关。
用户操作 Expires/Cache-Control Last-Modified/Etag
地址栏回车 有效 有效
页面链接跳转 有效 有效
新开窗口 有效 有效
前进、后退 有效 有效
F5刷新 无效 有效
Ctrl+F5刷新 无效 无效

总结:



参考
1.浏览器缓存机制
2.HTTP缓存控制小结

11.下图各个参数是什么意思(可选 难度*****)

|参数|含义
--|--|--
General|Request URL|请求的URL,这里是http://note.ruoyu.site/api/articles/56fe491655c1cafc367f913d
|Request Method|请求方式,这里是是PUT
|Status Code|状态码,这里的200表示服务器已成功处理了请求。
|Remote Address|请求的远程地址,这里是121.40.201.213:80
Response Headers|Connection|连接方式,keep-alive告诉服务器客户端和服务器之间是持久连接
|Content-length|请求的字段的大小,这里是12字节
|Date|服务器发出消息的时间,是格林威治时间
|Server|服务器的类型,这里是ngix/1.6.2
|X-Powered-By|由语言解析器或者应用程序框架输出的。这个值的意义用于告知网站是用何种语言或框架编写的,这里是Express框架
Request Headers|Accept|告诉服务器客户端可以接收的文档类型。这里*/*表示所有类型
|Accept-Encoding|告诉服务器客户端可以接收的压缩编码的方式,这里是gzip,deflate,sdch
|Accept-Language|告诉服务器客户端支持的语言,这里是中文,q是相对优先级
|Connection|连接方式,keep-alive告诉服务器客户端和服务器之间是持久连接
|Content-Length|用于描述HTTP消息实体的长度,这里是56字节
|Content-Type|用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这里是 表单数据向服务器提交时所采用的编码类型,编码方式是utf-8
|Cookie| 服务器接收到的Cookie信息
|Host|告知服务器,请求的资源所处的互联网主机名和端口号,这里是note.ruoyu.site
|Origin| 用来说明最初请求是从哪里发起的,只用于POST请求,这里是从http://note.rouyu.site发起的
|Referer|查看请求的URI是从哪个页面发起的,这里是从http://note.rouyu.site/发起的
|User-Agent|浏览器的种类
|X-Requested-With|内容是XMLHttpRequest,表示为Ajax请求
Form Data|article|表单的标题

参考 图解 HTTP-书

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

推荐阅读更多精彩内容