1 Http基础详解1~3

1-1 什么是Http协议? 

  超文本传送协议(HTTP-Hypertext transfer protocol)定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

  

工作流程
  一次HTTP操作称为一个事务,其工作过程可分为四步:
  1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
  2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
  3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

  如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

Client  -----请求----->  Server  Server  <-------响应-----  Client

HTTP协议基于TCP/IP协议之上:

  客户端与服务器建立连接之前先建立tcp连接(要有三次握手机制才可保证连接到)

  HTTP协议永远都是客户端发起请求,服务器回送响应。

  这样子就限制了使用http协议,无法实现客户端没有发起请求的时候,服务器将消息推送给客户端。

  http协议是一个无状态协议,同意客户端的这次请求和上次请求没有对应关系。

 

URL:统一资源定位符,英语UniformResourceLocator的缩写,也被称为网页地址,是因特网上标准的资源的地址。

URL的格式由下列三部分组成:

  协议(如http) + :// + 存有资源的主机IP地址 + / + 主机资源的具体地址(可省略)

  第一部分是协议(或称为服务方式);(https加密协议,多用于电子商务、银行等网站)
  第二部分是存有该资源的主机IP地址(有时也包括端口号);
  第三部分是主机资源的具体地址,如目录和文件名等。
  第一部分和第二部分之间用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。现在几乎所有的URI都是URL

 

TCP/IP基础——TCP三次握手:

  SYN(synchronous)是TCP/IP连接时使用的握手信息,在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN信息,服务器使用SYN和ACK应答表示接受到了这个信息,最后客户机再以ACK信息确认响应,这样在客户机和服务器机建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

  ACK(Acknowledgement)即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接收无误。

三次握手:
  客户机:你好,我想和你建立连接(发送SYN请求连接)
  服务器:你好,我已经接受到信息并且已经准备连接,同时我也想和你建立连接(发送ACK表示可以连接,同时发送SYN表示连接想法)
  客户机:谢谢,我已经收到你的连接想法,同时我已经准备连接(回发ACK表示可以连接)
  整个过程是双方都需要向对方发送连接想法和确认连接信息

httpq请求头信息

Request URL:请求的地址
Request Method:请求方法
Status Code:请求状态
Accept:可以接受的文件格式
Accept-Encoding:可接受的编码
Accept-Language:可接受的语言
Connection:连接方式
Host:主机地址

 

http请求的方式:

 

 

http响应码信息:

200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态码必须和WWW-Authenticate 报头玉一起使用
403 Forbidden// 服务器收到请求,但是拒绝提供服务
404 Not Found // 请求资源不存在
500 Internal Server Error//服务器发生不可预期的错误
503 Server Unavailable// 服务器当前不能处理客户端请求,一段时间后可能恢复正常

 

1-2 http协议特点

HTTP协议的主要特点:
  1.支持客户/服务器模式。

  2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

  4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并受到客户的应答后,即断开连接。采用这种方式可以节省传输时间。应答后就断开

  5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。发送错误只能重新发送

 

OSI七层协议:

 

OSI参考模型将整个网络通信功能划分为七个层次:
  由低到高分别是物理层PH、数据链路层DL、网络层N、传输层T、会话层S、表示层P、应用层A
  http协议属于应用层
  每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持。四到其层负责互操作性;一到三层用于创造两个网络设备间的物理连接。
  物理层和数据链路层:将比特流转换成电流信息,在物理设备电流设备转化
  网络层:IP协议,规划网络ip地址
  传输层:降底层信息通过nava协议传输,对应tcp、udp等协议
  会话层:建立连接
  表示层:在两个不同编码方式下进行数据转化和编码的加密解密操作
  应用层:http访问层,应用请求协议
      提出tcp/ip四层协议

 

1-3 http1.0和1.1区别

HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。
HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。
HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域。Host:www.w3.orghttp/1.0和1.1区别
HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。
HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。
HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域。Host:www.w3.org
HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT这些Request方法
HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT这些Request方法

 

转载于:https://www.cnblogs.com/crazyzx/articles/5325724.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值