http网络协议与基础

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

OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型,实现不同计算机及网络之间的通讯ヮ

  • 1,物理层:将信息编码成电流脉冲或其他信号用于网上传输(原始比特流的传输)——对应网络中的:中继器,集线器、网线、HUB
  • 2,数据链路层:通过物理网络链路供数据传输(将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址)——对应网络中的:网卡,网桥,交换机
  • 3,网络层:把网络地址翻译成物理地址,决定数据的路径选择和转寄,IPv4,IPv6(本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据)——对应于网络中的:网络:路由器,防火墙、多层交换机
  • 4,传输层:向高层提供可靠的端与端的网络数据流服务(常规数据递送,面向连接或无连接。包括全双工或半双工、流控制和错误恢复服务 )——对应于计算机:进程和端口
  • 5,会话层:实现不同机器上的用户建立对话关系(在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式)——对应于计算机:建立会话,SESSION认证、断点续传
  • 6,表示层:用于应用数据编码和转化,以确保一个系统应用层发送的信息可以被另一个系统应用层识别。(格式化数据,以便为应用程序提供通用接口。这可以包括加密服务。解决不同系统之间的通信)——对应于计算机:编码方式,图像编解码、URL字段传输编码
  • 7,应用层:规定数据的传输协议(直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输)——对应于计算机:应用程序,如FTP,SMTP,HTTP

部分参考:http://www.2cto.com/net/201307/232200.html

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

  • HTTP通信机制是一次Web浏览器与Web服务器之间完整的HTTP通信过程

    1 . 建立TCP连接,与ip协议构成tcp/ip协议族,建立网络连接
    2 .Web浏览器向Web服务器发送请求命令
    3 . 请求命令发送后, Web浏览器发送请求头信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
    4 .Web服务器应答,应答的第一部分是协议的版本号和应答状态码
    5 .Web服务器发送应答头信息,服务器随同应答向用户发送关于它自己的数据及被请求的文档
    6 .Web服务器向浏览器发送数据,应答头信息发送完后,服务器以Content-Type应答头信息所描述的格式发送用户所请求的实际数据
    7 .关闭TCP连接,Web服务器向浏览器发送了请求数据后就要关闭TCP连接,如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive.TCP连接在发送后将仍然保持打开状态

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

  • URI:统一资源标识符,是更通用的资源标识符,URL是他的一个子集。
    URI由两个子集构成
    • URL:通过描述资源的位置来描述资源
    • URN:通过名字来识别资源和位置无关
  • 格式:://:@:/?#

    scheme:指的是协议
    user和password现在不常见了,不会在URL明文书写用户名和密码了,都是通过登录的方式
    host是主机的域名
    port是端口号,http默认是80
    path是资源的路径
    params,在一些协议中需要参数来访问资源,例如ftp是二进制还是文本传输,参数是名值对,用;隔开
    query:这个是get请求最常用的传递参数方式了 ?a=1&b=2&=3
    hash也成为片段,设计为标识文档的一部分,很多MVVM框架用作了路由功能

  • 常见的协议有:http: 超文本传输协议

    • https: 安全套接字层超文本传输协议
    • ftb: 文件传输协议
    • mailto: 电子邮件协议
    • file: 本地文件传输协议

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

1、get :GET是最常用的方法,通常用于请求服务器发送某个资源
2、post :POST用于向服务器发送数据,通常用来支持HTML的表单(input、select、textarea),表单中的数据会被发送到服务器
3、head :HEAD方法和GET类似,但是在服务器的响应中没有资源的内容,只有资源的一些基本信息,主要用于
》1 在不获取资源的情况下获取资源信息(类型、大小等)
》2, 通过状态码产看资源是否存在
》3, 通过查看首部,测试资源是否被修改了
4、put:和GET从服务器获取资源相反,PUT用于向服务器写入资源。PUT的语义就是让服务器用请求的主体部分创建一个请求URL命名的文档,如果存在就替换
5、trace:客户端发送一个请求的时候,这个请求可能会穿过防火墙、代理、网关和一些其它应用程序,每个中间节点都可能修改HTTP请求,TRACE方法允许客户端在最终请求发往服务器的时候,看看它变成了什么样子。TRACE请求会在目的服务器端发送一个“闭环”诊断,行程最后一站服务器会弹回一条TRACE响应,并在响应主题中携带它收到的原始请求报文
6、delete:DELETE方法用于要求服务器删除请求的URL,和PUT一样,服务器可能会不支持
7、options:OPTIONS方法用于请求 web服务器告知其支持的各种功能

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

  • 200 ok ,表示请求被服务器处理成功
  • 301 Moved Permanently ,表示永久性重定向,浏览器会自动跳转到Location头中给出的URl
  • 304 Not Modified,表示页面使用本地缓存,不向服务器发送请求
  • 403 Forbidden,资源存在,但用户没有权限访问(服务器接受请求,但拒绝访问)
  • 404 Not Found,无法找到指定位置的资源
  • 500 Internal Server Erro, 服务器执行请求发生错误
  • 503 Service Unavailabl ,服务器超负载或停机维护

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

    报文分为请求报文和响应报文

  • HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成
    0_1476101482164_upload-eddc8904-182f-4ba4-b971-9282ec17dcda
  • HTTP 响应报文由状态行、响应头部、空行 和 响应包体 4 个部分组成
    0_1476101540714_upload-66e9ac9b-b31c-4b6b-bb99-3639bd1627ec
    HTTP响应报文与工作原理详解(1)

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

0_1476101901569_upload-e0ec6c6f-2ae1-4d4e-a68c-9a7eb2aa2d0e

  • 请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。
  • Accept:告诉服务器浏览器能接收的数据类型
  • Accept-Enocoding:能接受的压缩格式类型
  • Accept-Language:告诉服务器能发送的语言
  • Cache-Control:缓存指示(是否缓存,缓存多长时间)
  • Connection :是否保持连接
  • Cookie:客户端信息
  • Referer 告诉服务器链接是从哪个页面链接过来的,服务器籍此处理一些信息
  • Host:请求的域名,允许多个域名同处一个IP 地址,即虚拟主机等
  • User-Agent :发起请求的客户端程序

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

    0_1476102571265_upload-a7659a44-ed37-4e30-a2e5-3cac7251c890
  • Request URL:请求的URL
  • Request Method:请求的方法
  • Status Code:请求的状态
  • Remote Address:服务器ip和端口

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

    0_1476103000513_upload-0c1ffad2-e115-4f04-bd5e-628e7f9f9ab5
    主体就是客户端和服务器所传输的主要内容

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

    0_1476103356778_upload-a764b0bf-2fc0-4506-b630-71f8adae302f
  • Expires 绝对时间 :

    1,浏览器第一次向服务器请求资源,服务器返回信息,在response header中会加上Expires(有效时间)。
    2,浏览器把资源和response header一起缓存
    3, 当再次请求这一资源时,浏览器从缓存中找到资源查看Expires。如果当前时间没超出Expires的时间,就从缓存中拿资源。否则重新从服务器请求资源,Expires在从新请求时更新。
    由于其为绝对时间,当服务器时间与客户端时间相差较大时,缓存管理容易出现问题,比如随意修改下客户端时间,就能影响缓存命中的结果

  • Cache-Control 相对时间:

    和Expires一样,不过是相对于本次请求之后的秒数(即上次请求时间+Cache-Control时间)

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

general: 通用首部,客户端和服务器都可以使用,提供了与报文相关的最基本的信息。
Request URL:请求URL。
Request Method:请求方法。
Status Code:状态码。
Remote Address:远程地址。

Response Headers:响应首部:为客户端提供了一些额外信息,比如谁在发送响应、响应者的功能、其它一些特殊指令等。
Connerction:允许客户端和服务器指定与请求/响应连接相关的选项
Content-Lenght: 响应的报文长度。
Content-Type:响应的数据格式类型。
Data:响应的时间日期
Server:响应服务器的名称及型号。
X-Powered-By:表明当前站点(或资源)是用什么技术开发。
Request Headers:请求首部,客户端告诉服务器自身的一些信息。
Accept:客户端可识别的内容类型列表。
Accept-Encoding:客户端可接受的编码压缩格式。
Accept-Language:客户端可接受的自然语言。
Connection:连接方式。
Content-Lenght: 请求报文长度。
Content-Type:表示可以接受的数据格式类型
Cookie:浏览器向服务器发送请求时发送cookie,或者服务器向浏览器附加cookie。
Host: 域名和端口号。
Origin:请求的源。
Referer:指当前请求的URL是在什么地址引用的。
User-Agent:发请求浏览器的相关信息,名称和版本。
X-Requested-With:表示发送请求报文的应用程序是以XMLHTTPRequest的形式发送的数据(主要用于识别ajax请求)

From Data:上传的文件信息
article:文章信息

文章目录
  1. 1. 1. OSI 七层模型指什么 (难度*)
    1. 1.0.1. OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型,实现不同计算机及网络之间的通讯ヮ
  • 2. 2. HTTP 的工作原理是什么? (难度*)
  • 3. 3.URI 的格式是什么?常见的协议有哪些 (难度*)
  • 4. 4. HTTP 协议有几种和服务器交互的方法 (难度*)
  • 5. 5. 状态码200,301, 304,403,404,500,503分别代表什么意思 (难度**)
  • 6. 6. 报文有哪几部分组成? (可选 难度**)
    1. 6.1. 报文分为请求报文和响应报文
  • 7. 7.请求头的格式和作用是什么?给个范例截图说明 (可选 难度**)
  • 8. 8 .首部的格式和作用是什么?给个范例截图说明 (可选 难度**)
  • 9. 9 .主体的作用是什么?给个范例(可选 截图说明难度**)
  • 10. 10 .简述浏览器缓存是如何控制的(可选 难度*)
  • 11. 11 .下图各个参数是什么意思(可选 难度*)
  • ,