http协议概要

一,http协议简介

  1. http协议是超文本传输协议(hyper text transfer protocol)的缩写,它是TCP/ip协议的一个应用协议。用于定义web浏览器与web服务器数据交换的过程。

  1. 那什么是协议呢?

计算机中的协议和现实 中的协议是一样的,一式双份/多份、多方都遵从这一个规范,这个规范就可以称为协议;而计算机网络之所以全世界可以互通,协议是功不可没的,如果没有协议,计算机各说各的话,计算机之间很难互通。计算机世界中有各种协议,比如http协议,tcp/ip协议,pop协议。tmp,ftp等等。

  1. 什么是HTTP协议呢?

http协议即客户端按照一定规则向服务器发送数据或者请求数据,而服务器按照一定规则回应数据。

http版本:

http1.0特性:(断开连接)发送成功之后,立即断开,需要重新发送链接。

http1.1特性:(保持链接),发送成功之后也会保持链接。目前使用最多的是http1.1

http2.0 改进传输性能。

二,http协议主要特点

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

  1. 灵活:http允许传输任意类型的数据对象。正在传输的类型由content-type加以标记。

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

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

  1. 支持B/S及C/S模式。

三,URI和URL的区别。

uri 是统一资源标识符,URL是统一资源定位符,urI是URL和URN的超集。

URN是统一资源命名。

URI是统一资源标识符,用来标识唯一的资源。

web上可用的每种资源如HTML,图片,文档,视频片段,程序等都是一个URI来定位的

URI一般由三部分组成:

  1. 访问资源的命名机制。

  1. 存放资源的主机名。

  1. 资源自身的名称,由路径表示,着重强调于资源。

URL是统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还能指明了如何找到这个资源。

URL是Internet上用来描述资源信息的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的mosaic。

采用URL可以用一种统一的格式来描述各种信息资源,包括文件,服务器的地址和目录等。

URL一般由三部分组成:

  1. 协议

  1. 存有资源的主机IP地址

  1. 主机资源的具体地址。如目录和文件路径等。

URI是一种以抽象的,高层次概念定义统一资源标识,而url和URN则是具体的资源标识的方式。URL和URN都是一种URI。笼统地说,每个URL都是URI,但不一定每个URI都是URL.这是因为URI还包括一个子类,即统一资源名称(URN),它命名资源但不指定如何定位资源。上面的mailto,news和isbn URI都是URN的示例。

三,请求信息和响应信息的格式:

request,response

一个完整的http包括请求部分和响应部分。

  1. 请求部分格式:

请求行

请求头

空行

请求数据

四个部分组成

1,请求行

请求行分为三个部分:请求方法,请求地址URL和协议版本,他们之间用空格分割。

例如,get /index.html http/1.1

  1. 请求头部

请求头部主要是为请求报文添加了一些附加信息,由“键值对”组成,每行一对,名和值之间使用冒号分割。

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求数据。

请求头相关字段的意思:

  1. 请求数据

请求数据不在get方法中使用,而post方法中使用。post方法适用于需要客户填写表单的场合。与请求数据相关的最长使用的请求头部是content-type和content-length.

下面是一个post方法的请求报文:

get就是请求方法,http1.1代表请求所用的协议版本,host那块是请求头部信息。

  1. 响应部分

http响应部分由状态行、响应头部,空行和响应正文4个部分组成。

解析:

第一部分:状态行,由http协议版本,状态码,状态消息三部分组成。

第一行:状态行,http1.1版本,状态码200。

第二部分:响应头部,主要是用来说明客户端要使用的附加信息。

格式就是:key:value 一个键一个值的这种格式。

第二行和第三行为消息报头,

Date:生成响应的日期和时间;

content-typ:指定了MIME类型的html(text/html),编码类型是utf-8

content-length:代表接下来主体的长度等。

第二部分:响应头部,主要是用来说明客户端要使用的一些附加信息。

第三部分:空行,响应头部后面的空行是必须的。

第四部分:响应正文,服务器返回给客户端的文本信息。

空行后面的html部分为响应正文。

四,http请求方法

根据http标准,http请求可以使用多种请求方法。

http1.0定义了三种请求方法:get ,post ,head方法

http1.1新增了五种请求方法:options,put,delete,trace和content方法。

get:请求指定的页面信息,并返回实体主体。

head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。

post 向指定资源提交数据进行处理请求。数据包含在请求体中。post请求可能会导致新的资源建立或已有资源的修改。

put 从客户端向服务器传送的数据取代指定的文档的内容。

delete 请求服务器删除指定页面

connect http1.1协议中能够预留将链接改为管道方式的代理服务器。

options 允许客户端查看服务端的性能。

trace 回显服务器收到的请求,主要用于测试或诊断。

五,get和post的区别

  1. post比get安全,因为get提交的数据会暴露在url之后,post方法是把请求的数据放在请求体中。

  1. get提交的数据长度有限制,post方法提交的数据没有限制。

  1. get只有一个数据包,head信息与数据一起发送给服务器,post有两个数据包,先把head发一便,再把数据发一遍。

  1. get比post传送数据更敏捷,post用来传递敏感信息。

六,http和https的区别

  1. https和http一个加密,一个不加密。

  1. https协议需要CA证书,需要付费购买证书。

  1. http和https使用完全不同的链接方式,用的端口而不一样,前者用80,后者用443.

  1. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输。

  1. htto的链接很简单,是无状态;HTTPS协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比较安全。

七,tcp/ip协议:

tcp/ip协议是互联网通信模型,是互联网的基础通信架构,共采用了四层结构:

  1. 应用层:应用程序间沟通的层。

  1. 传输层:提供了节点间的数据传输。

  1. 互联网络层:负责提供基本的数据封包传送功能。

  1. 网络传输层:接收IP数据包进行传输

网络七层协议:

  1. 应用层

  1. 表示层

  1. 会话层

  1. 传输层

  1. 网络层

  1. 数据链路层

  1. 物理层

TCP和UDP的区别:

  1. 链接方面:TCP是面向链接,发送数据前要建立链接。

UDP是无连接,发送数据前不需要建立链接。

  1. 安全方面:TCP提供可靠的服务,无差错,不丢失。

UDP不保证传输的安全性。

  1. 传输方面:TCP传输速度慢

UDP传输速度快

  1. 链接对象方面:tcp是一对一链接

UDP是一对多链接。

什么是三次握手和四次挥手?(建立tcp连接时用的)

三次握手的目的是建立可靠的通信信道,双方确认自己与对方的发送与接收机能正常。

四次挥手意思是一方表示自己发完了所有要发的数据,但还允许对方继续把没发完的数据发过来,等双方都确认没有要发的数据之后再断开连接。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值