HTTP协议与响应状态码

HTTP协议与响应状态码

HTTP协议

HTTP(Hyper Text Transfer Protocol) 超文本传输协议,是一个基于TCP/IP规定的浏览器和万维网服务器之间相互通信的协议,它允许将HTML文档从Web服务器传送到Web浏览器(默认端口号是80**),它的每一次请求对应一次响应,且每次请求之间相互独立,不能交互数据。

传输协议:定义了,客户端和服务器端通信时,发送数据的格式

1.请求消息数据格式:

POST /login.html	HTTP/1.1       //请求行
Host: localhost                    //请求头
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0  
                                   //空白行,代表请求头结束	
username=zhangsan                  //请求正文	
  • 请求行-
    请求行由三部分组成,第一部分说明请求方式(GET/POST),第二部分是一个url路径,用来说明请求在该域名根目录下的位置,第三部分说明的是请求协议版本(最新的HTTP版本为HTTP1.1)

  • 请求头-
    表示客户端浏览器告诉服务器一些信息。HOST代表请求主机地址,User-Agent代表浏览器的标识,请求头由客户端自行设定。

    设定请求头:

    • Accept:浏览器端能够处理的内容类型。
    • Accept-Encoding:浏览器能够处理的的压缩编码。
    • Accept-Language:浏览器当前设置的语言。
    • Accept_Charset::浏览器能够显示的字符集
    • Connection:浏览器与服务器的连接类型
    • Host:发送请求的页面的域名。
    • Referer:发送请求的页面的URI。
    • User-Agent:浏览器的用户代理字符串。
    • Cookie:用来存储一些用户信息以便让服务器辨别用户身份。
    • Cache-Control:指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据,还是重新发请求到服务器获取数据。
  • 请求正文-
    请求正文是可选的,它最常出现在POST请求方式中,用来封装POST请求消息的请求参数的

  • 请求空行-
    空行,就是用于分割POST请求的请求头,和请求体的。

HTTP请求方法:-
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

方法

说明

GET

请求指定的页面信息,并返回实体主体,请求参数在请求行中,url长度有限,不安全

HEAD

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

POST

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

PUT

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

DELETE

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

CONNECT

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

OPTIONS

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

TRACE

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

PATCH

是对 PUT 方法的补充,用来对已知资源进行局部更新 。

2. 响应消息格式

当客户端向Web服务器发送请求时,Web服务器接收到请求后会做出相应的响应,一个完整的HTTP响应包括响应行(Status Line)、响应头(Header)、响应空行(Blank Line)和响应体(Body)。

* 响应字符串格式
HTTP/1.1 200 OK                        //响应行
Content-Type: text/html;charset=UTF-8  //响应头
Content-Length: 101                    
                                       //响应空行
Date: Wed, 06 Jun 2018 07:08:42 GMT    //响应体:传输的数据

<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  hello , response
  </body>
</html>
  • 响应行:-
    由协议/版本、响应状态码、状态码描述组成,响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。

  • 响应头:-
    Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式、 Content-disposition:服务器告诉客户端以什么格式打开响应体数据( in-line:默认值,在当前页面内打开,attachment;filename=xxx:以附件形式打开响应体。文件下载)

  • 响应体

  • 响应空行

HTTP状态码

HTTP状态码由三位数字组成,第一位数字定义响应类表,后两位没有实际意义,用于区分不同的响应状态。根据第一位去不同数字,主要可以分为以下五类:

  • 1xx 信息,请求被服务器接收,继续处理
  • 2xx 成功,操作被成功接收并处理
  • 3xx 重定向,要完成请求需要采取下一步操作
  • 4xx 客户端错误,请求包含语法错误或无法完成请求
  • 5xx 服务器错误,服务器在处理请求的过程中发生了错误

HTTP响应状态码

状态码

英文名称

说明

状态码

英文名称

说明

100

Continue

继续请求

101

Switching Protocols

切换协议

200

OK

请求成功,一般用于GET与POST请求

201

Created

已创建

202

Accepted

已经接受请求,但未处理完成

203

Non-Authoritative Information

非授权信息

204

No Content

无内容。服务器成功处理,但未返回内容。

205

Reset Content

重置内容。服务器处理成功,用户终端应重置文档视图

206

Partial Content

服务器成功处理了部分GET请求

300

Multiple Choices

多种选择,返回了一个资源特征与地址的列表用于用户终端选择

301

Moved Permanently

请求的资源已被永久的移动到新URI

302

Found

资源临时被移动

303

See Other

查看其它地址

304

Not Modified

请求的资源未修改,服务器返回此状态码时,不会返回任何资源。

305

Use Proxy

使用代理。所请求的资源必须通过代理访问

306

Unused

已经被废弃的HTTP状态码

307

Temporary Redirect

临时重定向

400

Bad Request

客户端请求的语法错误,服务器无法理解

401

Unauthorized

请求要求用户的身份认证

402

Payment Required

保留

403

Forbidden

服务器理解请求客户端的请求,但是拒绝执行此请求

404

Not Found

服务器无法根据客户端的请求找到资源

405

Method Not Allowed

客户端请求中的方法被禁止

406

Not Acceptable

服务器无法根据客户端请求的内容特性完成请求

407

Proxy Authentication Required

请求要求代理的身份认证

408

Request Time-out

服务器等待客户端发送的请求时间过长

410

Gone

客户端请求的资源已经不存在

411

Length Required

服务器无法处理客户端发送的不带Content-Length的请求信息

412

Precondition Failed

客户端请求信息的先决条件错误

413

Request Entity Too Large

由于请求的实体过大,服务器无法处理,因此拒绝请求

414

Request-URI Too Large

请求的URI过长,服务器无法处理

415

Unsupported Media Type

服务器无法处理请求附带的媒体格式

416

Requested range not satisfiable

客户端请求的范围无效

417

Expectation Failed

服务器无法满足Expect的请求头信息

500

Internal Server Error

服务器内部错误,无法完成请求

501

Not Implemented

服务器不支持请求的功能,无法完成请求

502

Bad Gateway

从远程服务器接收到了一个无效的响应

503

Service Unavailable

由于超载或系统维护,服务器暂时的无法处理客户端的请求

504

Gateway Time-out

充当网关或代理的服务器,未及时从远端服务器获取请求

505

HTTP Version not supported

服务器不支持请求的HTTP协议的版本,无法完成处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值