HTTP协议学习

HTTP协议

这两天跟着视频学习了一下有关于HTTP协议方面的知识,作为一个小小的笔记保存在此。

超文本传输协议(HTTP: Hyper Text Transfer Protocol)是现在互联网上应用最广泛的一种网络协议,现在大多数的web应用都需要基于HTTP进行开发。

web的交互流程 

 

流程:客户端根据用户输入的地址信息(URL)请求服务器,服务器在接收到用户的请求后 进行处理,将处理结果响应给客户端,客户端将响应的结果响应给用户。

 

客户端与服务器之间产生的问题:

现在有IE,GOOGLE,Firefox等不同的浏览器。每一个浏览器都有与服务器进行请求响应的过程,如果这些浏览器同时向服务器提出请求,服务器识别这些请求,然后在处理完这些请求并将处理好的数据发送给浏览器的时候,因为格式的不统一,服务器并不会知道自己要把数据发送给哪一个浏览器。

为了规范浏览器与服务器之间的通讯格式,HTTP协议就成为了客户端和服务器端请求和响应的标准。

简单来说:HTTP协议就是客户端与服务器交互的一种格式标准,也是约束请求与响应的一种规则。

 

HTTP的介绍

HTTP是1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(Hypertext),最初的目的是为了提供一种能够发布和接收HTML页面的方法。在后来,Ted Nelson组织万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force)共同合作研究,最终发布了一系列RFC,其中最著名的RFC 2616定义了HTTP1.1。https://tools.ietf.org/html/rfc2616

 

HTTP的特点

1.  简单快速:HTTP请求和响应的格式是基于键值对的,使得HTTP的服务器程序规模小,通讯速度快。

2.  灵活:    HTTP允许传输任意类型的数据对象。

3.  无连接:在服务器处理客户端的请求之前,是不需要建立HTTP连接的,在服务器处理完客户端的请求,并未收到客户的应 答后,则断开HTTP连接。

4.  无状态:同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同,即重新开始服务(假设服务器还没更新该页面),因为服务器并不记得曾经访问过这个客户,也不会记得自己为该客户服务过多少次。

5.  支持B/S和C/S模式

持久连接:在HTTP1.0的时候,每一次进行HTTP通信就会断开一次连接,在访问的过程中就会不断的进行建立连接,断开连接,这样是非常浪费资源的。在HTTP1.1版本中,一次HTTP连接就能够处理多个请求,就是持久连接了。

 

HTTP的交互流程

HTTP连接一次完整的请求与响应有四个步骤

步骤一:客户端与服务器端建立连接

步骤二:客户端发送请求数据到服务器端

步骤三:服务器端接收到请求后,进行处理,然后将处理结果响应客户端

步骤四:关闭客户端和服务器端的连接(HTTP1.1后不会立即关闭)

 

HTTP协议之请求方式

请求格式的结构:

请求头:请求方式、请求的URL地址、HTTP协议版本

请求行:消息报头、一般用来说明客户端要使用的一些附加信息

空行:    位于请求行和请求数据之间,空行是必须的。

请求体:可以为空。

 

HTTP的请求方式:GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE、CONNECT

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

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

POST:向指定资源提交数据进行处理请求(例如提交表单或上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改

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

DELETE:    请求服务器删除指定的页面。

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS: 允许客户端查看服务器的性能。

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

 

GET和POST请求方式的区别

GET请求方式:

请求数据会以?的形式隔开拼接在请求头中,不安全,没有请求实体部分。

HTTP协议虽然没有规定请求数据的大小,但是浏览器对URL的长度是有所限制的,所以GET请求不能携带大量的数据

POST请求方式:

请求数据在请求实体中进行发送,在URL中看不到具体的请求数据,安全,适合数据量大的数据发送。

 

HTTP协议之响应方式

响应格式的结构:

响应行(状态行):HTTP版本、状态码、状态消息

响应头:消息报头、客户端使用的附加信息

空行:响应头和响应实体之间的,必须的

响应实体:正文、服务器返回给浏览器的信息

 

HTTP常见响应状态码含义:

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

HTTP状态码分类:

分类      分类描述

1**        信息,服务器收到请求,需要请求者继续执行操作

2**        成功,操作被成功接收并处理

3**        重定向,需要进一步的操作以完成请求

4**        客户端错误,请求包含语法错误或无法完成请求

5**        服务器错误,服务器在处理请求的过程中发生了错误

 

常见状态码:

200 OK                                  //客户端请求成功

204 No Content                    //目前请求成功,但客户端不需要更新其现有页 面。

206 Partial Content              //对服务器进行范围请求,只返回一部分数据

400 Bad Request                 //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized                //请求未经授权,这个状态代码必须和 WWW-Authenticate报头域一起使用

403 Forbidden                     //服务器收到请求,但是拒绝提供服务

404 Not Found                    //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error    //服务器发生不可预期的错误

503 Server Unavailable      //服务器当前不能处理客户端的请求,一段 时间后可能恢复正常

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值