转载至:https://zhuanlan.zhihu.com/p/45173862
1. HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www)服务器传输文本到本地浏览器的传送协议,可以认为是客户端和服务端进行数据传输的一种规范。它是基于TCP/IP通讯协议来传输数据的。
HTTP是一种属于应用层面向对象的协议。
特点:
1.)支持客户/服务器模式。
2.)简单快速:客户向服务器请求服务时,只需要传递请求方法(GET、POST等)和路径。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,是的HTTP服务器的规模很小,所以通讯速度很快。
3.)无连接:无连接指服务器完成一次客户的请求后,就会断开当前连接,下次再进行数据处理时,重新建立连接。采用这种方式可以节省传输时间。后来可以通过Connection:Keep-Alive来实现长连接。
4.)无状态:HTTP协议是无状态(协议对于事物的处理没有记忆的能力)协议。也就是当我们在处理数据的时候需要用到前面的信息的时候,它是无法获取到的,只能通过重新传送来获取这个数据,这样有时候会导致每次传输的数据特别大(或者比正常情况多)。但是在另一方面看,当他不需要前面的数据的时候,这个传输速度会很快。
5.)灵活:HTTP允许接受任意类型的数据对象。正在传输的类型可以有Content-Type来进行标记
2.HTTP请求(request)
具体参考下图:
请求行:
Method:各种请求方法,即:GET、POST、PUT等。
Request-URL:请求地址。
Http-version:http版本。
请求头部:
由许多键值对组成,包含客户端向服务器附送一些自身的信息,用来业务使用等。主要列举一些,如下:
Accept 指定客户端能够接收的内容类型 例:Accept:text/plain,text/html
Accept-Charset 浏览器可以接受的字符编码集,分别是GB2312、utf-8和任意字符,优先顺序入排列顺序 例:Accept-Charset:GB2312,utf-8;q=0.7,*;q=0.7
Accept-Encoding:gzip,deflate 浏览器支持的压缩编码是gzip和deflate
User-Agent:Mozilla/5.0(compatible;域名) 使用的用户代理是Mozilla/5.0(compatible;域名)
Host:域名 表示请求的服务器网址
Connection:Keep-Alive 表示是否需要持久连接,HTTP1.1默认持久连接
Accept-Language:en,zh 浏览器可以接受的语言
Authorization Http授权的授权证书类型
Referer 指的是当前请求的来源
3.HTTP响应(response)
具体参考下图:
状态行:包括HTTP版本信息、状态码、状态描述。
状态码
状态码由三位数字组成,第一位数字定义了相应类型,共五种状态:
1xx:指示信息,表示请求已经接收,继续下一步处理
2xx:成功,表示请求已被服务器成功接收
3xx:重定向
4xx:客户端错误,一般为参数或地址错误
5xx:服务端错误
各个状态码意义
100:继续,客户端继续请求
101:切换协议,服务器根据客户端的请求切换协议
200:请求成功
201:请求成功并创建了新的资源
202:已接收请求,但未处理完成
203:非授权信息,服务器已成功处理了请求,但返回的信息可能来之另一个源
204:无内容,服务器成功处理了请求,但是没有返回任何内容
205:重置内容,服务器成功处理了请求,但是没有返回任何内容
206:部分内容,服务器成功处理了请求,但是没有返回任何内容
300:被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息
301:永久移动,请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302:临时移动,服务器目前从不同的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303:请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码
304:未修改,次从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容
305:使用代理,请求这只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求这应该使用代理。
307:临时重定向,服务器目前从不同的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
400:错误请求,服务器端不理解请求的语法
401:未授权,请求要求验证身份信息,对于需要登录认证的网页,有可能返回此状态
403:服务器拒绝请求
404:服务器找不到请求的页面
405:方法禁用,禁止使用请求中指定的方法
406:无法使用请求的内用响应请求的网页
407:应代理授权,指定请求者应当授权使用代理
408:服务器请求超时
409:服务器在完成请求时发生冲突
410:请求资源已被删除
411:服务器不接受不含有效内容长度表头字段的请求
412:服务器为满足请求者在请求中设置的其中一个前提条件
413:请求实体过大
414:请求的url过长
415:服务器无法处理请求的媒体格式,有可能在请求时不加content-type汇报这个错误
416:请求范围不符合要求
417:服务器为满足“期望”请求标头字段的要求
500:服务器遇到错误
501:服务器不支持请求的功能,请求方法错误可能报这个错误
502:错误网关,服务器作为网关或者代理,从上游服务器收到无效响应
503:服务器目前无法使用
504:服务器充当网关或者代理时,没有及时从上游服务器收到响应
505:服务器不支持目前的http协议
4.HTTP缺点:
1.)通讯使用明文(不加密),内容可能会被窃听
2.)不验证通信方的身份,因此有可能遭遇伪装
3.)无法证明报文的完整性,有可能已被篡改
详细信息,可看https://blog.csdn.net/wangxp423/article/details/80033225
标签:协议,HTTP,请求,请求者,http,响应,了解,服务器 From: https://www.cnblogs.com/lisir-blogshare/p/16784782.html