You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.8 KiB
2.8 KiB
一、HTTP
HTTP
协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
特点:
- 支持客户/服务器模式。
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有
GET
、HEAD
、POST
。每种方法规定了客户与服务器联系的类型不同。由于HTTP
协议简单,使得HTTP
服务器的程序规模小,因而通信速度很快。 - 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由
Content-Type
加以标记。 - 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。早期这么做的原因是请求资源少,追求快。后来通过
Connection: Keep-Alive
实现长连接 - 无状态:
HTTP
协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大(因此引入了Cookie)。另一方面,在服务器不需要先前信息时它的应答就较快
1.URL
URL
包含了用于查找某个资源的详细信息, 格式如下
http://host[":"port][abs_path]
2.Request
2.1 状态行
请求行由请求Method
, URL
字段和HTTP Version
三部分构成,例:
GET /example.html HTTP/1.1 (CRLF)
Method:
- GET
- POST
- HEAD
- PUT
- DELETE
- TRACE
- OPTIONS
2.2 请求头
2.3 请求正文
只有在发送POST
请求时才会有请求正文,GET
方法并没有请求正文
3.Response
3.1 状态行
状态行也由三部分组成,包括HTTP协议的版本,状态码,以及对状态码的文本描述
HTTP/1.1 200 OK (CRLF)
3.2 状态码
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 1xx
:指示信息 - 表示请求已接收,继续处理 2xx
:成功 - 表示请求已被成功接收、理解、接受 3xx
:重定向 - 要完成请求必须进行更进一步的操作 4xx
:客户端错误 - 请求有语法错误或请求无法实现 * 5xx
:服务器端错误 - 服务器未能实现合法的请求
!
!
!
!