http工作原理相关

1. OSI 七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。OSI采用了分层的结构化技术,共分七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。


http工作原理相关_第1张图片
OSI七层结构
  • 1、 物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。
  • 2、数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。
  • 3、网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。
  • 4、传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。
  • 5、会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。
  • 6、表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
  • 7、应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

2. HTTP 的工作原理

HTTP(HyperText Transfer Protocol超文本传输协议)是一套计算机通过网络进行通信的规则。HTTP的工作流程可分为四步:

  • 客户端与服务器建立连接。当我们在浏览器输入网址或者当我们点击链接时,HTTP开始工作。
  • 建立连接后,客户机发送一个请求给服务器,如当我们在浏览器地址栏输入www.baidu.com,浏览器将我们的请求封装成HTTP报文,请求报文的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。打开浏览器控制台Network,可看到浏览器发送的请求。
    http工作原理相关_第2张图片
    1.jpg
  • 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  • 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

3. URI 和常见的协议

URI和URL

URL(统一资源定位符)是URI(统一资源标识符)的一个子集
URI由两个主要的子集构成

  1. URL:通过描述资源的位置来描述资源
  2. URN:通过名字来识别资源,和位置无关
    如下几种URI:


    http工作原理相关_第3张图片
    2.jpg

    绝对URI的格式:

http工作原理相关_第4张图片
《图解HTTP》.jpg

常见的协议以及对应端口号
(1)FTP 文件传输协议,使用21端口。
(2)HTTP:超文本传输协议。默认80端口。
(3)HTTPs:具有安全性的ssl加密传输协议,端口号443.
(4)Telnet:它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。如以前的BBS是纯字符界面的,支持BBS的服务器将23端口打开,对外提供服务。
(5)SMTP: 简单邮件传送协议,25端口。
(6)POP3:它是和SMTP对应,POP3用于接收邮件。110端口。

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

HTTP最大的作用就是客户端发送请求,服务器给出响应,客户端想服务器发送请求的方式有很多。

  • GET
    GET是最常用的方法,通常用于请求服务器发送某个资源。我们平时在浏览器输入网页地址,就是给服务器发送了一个get请求,希望得到这个网页。
  • POST
    POST用于想服务器发送数据,通常用来支持HTML的表单(input、select、textarea),表单中的数据会被发送到服务器。
  • HEAD
    HEAD方法和GET类似,但是在服务器的响应中没有资源的内容,只有资源的一些基本信息,主要用于:
  1. 在不获取资源的情况下获取资源信息(类型、大小等)。
  2. 通过状态码产看资源是否存在。
  3. 通过查看首部,测试资源是否被修改了。
  • PUT
    和GET从服务器获取资源相反,PUT用于想服务器写入资源。PUT的语义就是让服务器用请求的主体部分创建一个请求URL命名的文档,如果存在就替换

  • TRACE
    客户端发送一个请求的时候,这个请求可能会穿过防火墙、代理、网关和一些其它应用程序,没个中间节点都可能修改HTTP请求,TRACE方法允许客户端在最终请求发往服务器的时候,看看它变成了什么样子。
    TRACE请求会在目的服务器端发送一个“闭环”诊断,行程最后一站服务器会弹回一条TRACE响应,并在响应主题中携带它收到的原始请求报文。

  • DELETE
    DELETE方法用于要求服务器删除请求的URL,和PUT一样,服务器可能会不支持。

  • OPTIONS
    OPTIONS方法用于请求 web服务器告知其支持的各种功能。

5. 状态码

HTTP状态码,反映了Web服务器处理HTTP请求状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码的类型:
   
1XX-信息类(Information),表示收到Web浏览器请求,正在进一步的处理中
2XX-成功类(Successful),表示用户请求被正确接收,理解和处理例如:200 OK成功
3XX-重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。如

  • 301:Moved Permanently,客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
  • 304: Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告 诉客户,原来缓冲的文档还可以继续使用。

4XX-客户端错误(Client Error),表示客户端提交的请求有错误 例如:404 NOT Found,意味着请求中所引用的文档不存在。
5XX-服务器错误(Server Error)表示服务器不能完成对请求的处理:如 500 对于我们Web开发人员来说掌握HTTP应答码有。503 Service Unavailable 服务器由于维护或者负载过重未能应答。

HTTP报文详解

你可能感兴趣的:(http工作原理相关)