HTTP协议

2017-04-23  本文已影响62人  sunny519111
人生就像一列开往坟墓的列车,路途上会有很多站,很难有人至始至终陪你走完全程,当陪你的人要下车时,即便不舍,也要心存感激,然后挥手告别。---sunnyhuang

HTTP

1. OSI 七层模型指什么

七层模型图

开放式系统互联通信参考模型(OSI)

主机层

Data(数据层)7.应用层 6. 表示层 5.会话层

Segments(数据段) 4.传输层

媒介层

网络分组/数据报文 3. 网络层

Bit/Frame(数据帧) 2. 数据链路层

Bit(比特) 1. 物理层

应用层: 规定了数据的传输协议,提供为应用软件而设的界面,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。

表示层:解决不同系统之间的通信。例如:linux下的qq和windows下的qq可以通信

会话层:建立一个连接(自动的手机信息,自动的网络寻址)

传输层:每一个应用程序都会在网卡注册一个端口号,该层就是端口和端口之间的通信,常用的是TCP/IP协议

网络层:此处需要确定计算机的位置,怎么确定?IPv4,IPv6!

数据链路层:可以简单的理解为:规定了0和1的分包形式,确定了网络数据包的形式

物理层:物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输

2.HTTP 的工作原理是什么?

HTTP(超文本传输协议)是应用层协议。HTTP协议采用的是请求/响应模型,当客户端给服务器建立连接后,向服务器发送一个请求,服务器接收到相应的请求后,给客户端一个响应信息。

  1. 客户端连接到web服务器:HTTP客户端与web服务器建立一个TCP连接
  2. 客户端向服务器发起HTTP请求:通过已经创建好了的TCP连接,客户端给服务器发送一个请求报文
  3. 服务器接收HTTP请求并返回HTTP响应:服务器解析请求,定位请求资源,服务器将资源副本写到TCP连接,由客户端读取
  4. 释放TCP连接:若connection模式为close,则服务器主动关闭TCP连接,释放TCP连接,若connection模式为keep alive,则该连接会保持一段时间,在该时间内可以继续接受请求

3.URL的格式是什么?常见的协议

URL(统一资源定位符):协议+域名+端口+路径组成

常见的协议

  1. 网络层协议: IP协议、ICMP协议、ARP协议、RARP协议。
  2. 传输层协议:TCP协议、UDP协议。
  3. 应用层协议: FTP、Talnet、HTTP、SMTP

4.HTTP 协议有几种和服务器交互的方法

  1. GET:最常用的方法,通常用于请求服务器发送某个资源,通常返回在响应主体
  2. POST: 向指定资源提交数据,请求服务器进行处理,如:表单的数据提交,文件的上传等,请求数据会被包含在请求体中。
  3. HEAD: 和GET方法类似,但是它不会资源的内容,而是返回资源的一些基本信息。主要运用于
    • 在不获取资源的情况下获取资源信息(类型、大小等)
    • 通过状态码产看资源是否存在
    • 通过查看首部,测试资源是否被修改了
    • HEAD方法常被用于客户端查看服务器的性能。
  4. PUT: 和GET从服务器获取资源相反,PUT用于想服务器写入资源。PUT的语义就是让服务器用请求的主体部分创建一个请求URL命名的文档,如果存在就替换。
  5. TRACE: 客户端发送一个请求的时候,这个请求可能会穿过防火墙、代理、网关和一些其它应用程序,没个中间节点都可能修改HTTP请求,TRACE方法允许客户端在最终请求发往服务器的时候,看看它变成了什么样子。
  6. DELETTE:用于要求服务器删除请求的URL。
  7. OPTIONS: OPTIONS方法用于请求 web服务器告知其支持的各种功能

5.状态码200301304403,404,500503分别代表什么意思

200: 表示请求得到响应的相应 OK

**301: **表示客户请求的文档在其他地方,新的URL在Location中指出,浏览器会自动地访问新的URL地址 Moved Permanently(永久行的移动)


301状态码

**302: ** ---类似于301,但是表示临时的替代,而不是永久性替代,浏览器也会自动跳到新的URL地址, “Moved Temporatily”(临时的移动)

304: ---(未修改)自从上次请求后,请求的内容没有被修改过,不会返回内容,直接用浏览器的缓存内容。通常(If-Modified-Since在请求头中,浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间Last-Modified进行比较,如果时间一致,就使用缓存)If-Modified-Since解析

403: ---(禁止)资源不可用,服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。Forbidden

404: ---(未找到) 找不到资源 Not Found

500: ---(服务器内部错误)服务器遇到了意料不到的情况,不能完成客户的请求

503: --- (服务不可用)服务器目前无法使用(由于超载或停机维护)

6.报文有哪几部分组成?

一个HTTO报文有三部分组成

  1. 对报文进行描述的起始行 ----start line
  2. 包含属性的首部块 ----header
  3. 可选的包含数据的主体部分 ----body

HTTP报文分2大类

请求报文 :向web服务器请求一个动作

<method><request-URL><version>
<headers>

<entity-body> /*请求一般没有数据的内容*/

响应报文: 将请求结果返回给客户端

<version><status><reason-phrase>
<headers>

<entity-body>

7.请求头的格式和作用是什么?给个范例截图说明

格式:键值对

作用:告诉客户端一些请求的基本要求和样式


request headers.png

8.首部的格式和作用是什么?给个范例截图说明

格式: 键值对

首部的分类:1. 通用首部字段(General)2. 请求首部字段(Request),3. 响应首部字段(Response),4. 实体首部字段(Entity)

首部.png

9主体的作用是什么?给个范例

主体: 主体是HTTP的第三个部分,该部分是可选择的,一般有主体的请求方法是post。主体是HTTP报文的负荷,就是HTTP所要传输的内容。

response内容.png

10 简述浏览器缓存是如何控制的

第一次请求

没有缓存的时候

有缓存后第二次请求

第二次请求

11.下图各个参数是什么意思

参数的意思

通用首部General

反应头部(Response Headers)

请求头(Request Headers)

参考链接

http综合

X-Requested-With区别

If-Modified-Since

浏览器缓存知识

上一篇 下一篇

猜你喜欢

热点阅读