HTTP协议

  1. 计算机通信协议7层:应用层→表示层→会话层→传输层→网络层→数据链路层→物理层

  1. http协议概念:是一种超文本传输协议,也是一种请求-响应式协议,通常运行在TCP之上,它指定了

  1. http常见的5种状态码:

1xx:消息,指连接状态  2xx:客户端请求成功  3xx:重定向  4xx:请求错误,找不到资源

5xx:服务器错误

  1. http传输协议的特点:
  1. 无状态连接:无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面好处就是,如果后续的连接不需要之前提供的信息,响应就会比较快.而为了解决HTTP的无状态特性,出现了Cookie和Session技术。

2.无连接:无连接是指限制每次连接只处理一个请求,完成客户端请求后立即断开连接,可以节省传输时间

3.长连接:在1.1版本中,采用长连接形式,但不代表一致保持连接,超过连接时长限制时,就会断开连接

4.传输速度快,协议简单

5.支持传输多种数据类型的对象,并且传输的类型用Content-Type标记

6.支持B/S端

7.属于应用层协议

  1. http的工作原理:客户端通过URL向服务器发送所有的请求。服务器根据接收到的请求,向客户端发送响应信息。HTTP协议定义客户端如何向服务器发送请求,以及服务器如何将响应请求传送给客户端,所以HTTP请求协议采用了请求/响应模型。

客服端

2.1.向服务器发送请求。

2.2.接收服务器返回的报文并解释成友善的信息供阅读。

2.3.客户端大概有:浏览器,应用程序等。

2.4.如今时代可能使用最多的就是浏览器, 当用户在地址栏输入网址回车时,浏览器会为什么做如下处理:

a.解析协议和域名。

b.使用HTTP协议并创建请求报文向服务端发送请求。

c.接收服务器返回的内容并展示给客户。

 服务器端

3.1.服务器端在接收到客户端发送的请求后会开始处理请求。

3.2.服务器处理过程:服务器软件一直在监听端口是否有新的请求达到,如iis或者tomcat在建立web站点后,默认会一直监听80端口等待HTTP请求到达服务器。

a.建立连接:如果客户端已经打开道服务器的持久连接,则可以直接使用,否则客户端需要在服务器打开一条新的连接。

b.接收请求报文:连接上有数据到时,web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来。

c.处理请求:当请求被接收后,服务器便可以根据请求报文进行处理了。例如post方法中提出报文主体的数据并插入到数据库中。

d.访问资源:请求处理完后,比如web会根据数据生成一系列的HTML页面或图片等信息,此步骤将访问这些存储在服务器上的物理文件。

e.构建响应:web服务器在识别资源后,构造响应报文,响应报文包括:状态码,响应头,响应主体等内容。

f.发送响应:服务器将响应的数据发送给客户端机器。

g.记录日志:请求结束,服务器会在日志文件中记录一条请求日志。

  1. http网址组成:协议,域名,端口,虚拟目录,文件名称,锚,查询参数
  2. http的请求报文

报文是客户端与服务器端之间信息传递的载体,客户端发送数据给服务器端的过程叫做请求报文,反之则是响应报文(在浏览器F12查看文件的网络中的请求标头就是报文)

  1. 报文组成:

Get请求的2个部分:请求行(包含请求方法,要访问的资源以及所适用的HTTP版本)和请求头(说明服务器要使用的附加信息)

Post请求的3个部分:请求行和请求头,请求体(post请求体包含请求的参数)

  1. http常见的请求方法:

GET:请求获取Request-URI所标识的资源。

POST:在Request-URI所标识的资源后附加新的数据。

HEAD:请求获取由Request-URI所标识的资源的响应消息报头。

PUT:请求服务器存储一个资源,并用Request-URI作为其标识。

DELETE:请求服务器删除Request-URI所标识的资源。

TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。

CONNECT:保留将来使用。

OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。

  1. 其中较为重要的get、post的区别

Get:1.从服务器获取数据,返回响应的实体部分,可以类比数据库的select操作,不会影响数据库本身。

2.没有请求体。

3.请求参数和对应的值附在URL后,以?号开始,参数用key=value键值对的方式书写,多个参数使用&分割。

4.通常对数据不敏感的请求使用get请求,因为参数跟在URL后不安全。

5.传输的参数长度是没有限制的,只是不同的浏览器会对其进行不同的长度限制

Post:1.向指定资源提交表单数据进行处理请求(例如提交表单或者上传文件)。参数数据被包含在请求体中,以名称/值的形式出现,可以传输大量的数据。POST请求可能会导致新的资源的建立和/或已有资源的修改。

2.通常post请求含有请求体。

3.请求参数存放在请求体中,可以是任意格式。

4.相对来说数据比较安全。

5.请求数据无大小限制,可以认为是无限制。

  1. 1.从参数的传递方面来看,GET请求的参数是直接拼接在地址栏URL的后面,而POST请求的参数是放到请求体里面的。

2.从长度限制方面来看,GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但是浏览器一般都有一个界限。

3.从安全方面来看,GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST。

4.从本质上来说,GET和POST都是TCP连接,并无实质的区别。但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同。GET产生一个数据包,POST产生两个数据包。对于GET请求,浏览器会把http header 和 data 一并发出去,服务器响应200(返回数据)。而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200。

  1. C/S端与B/S端的区别:

C/S端是客户端服务器端模式,维护成本高,在本地安装,需要更新时要下载安装程序,中途可能会失败,并且只能在局域网内访问,界面开发不够灵活

B/S端是浏览器端服务器端模式,其维护成本较低,无需再本地安装,可以直接更新服务器端的内容,客户端只需使用浏览器访问即可,支持广域网,依赖于HTML5,CSS3等技术,开发比较灵活

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值