Web后端开发入门(5)
HTTP概述
HTTP(hypertext transport protocol)即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。通过因特网传送Web文档的数据传输协议。
HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们学习HTTP就是学习这两个格式。客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应格式”。
HTTP协议是一个应用层协议,由请求和响应构成,是一个标准的客户端/服务器端模型
主要特点
- 支持B/S(客户端/服务端)模式
- 简单快速:客户端向服务器请求服务时,只需传送请求方法和路径。请求方法常用有:GET、POST等
- 灵活:HTTP协议允许传输任意类型的数据对象
- 正在传输的类型由Context-Type加以标记
- 无连接:指HTTP协议限制每次连接只处理一个HTTP请求
- 无状态:指HTTP协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则必须重新发送
请求协议
HTTP请求,第一行称为请求行,有三个字段:方法字段、URL字段、HTTP版本字段,方法字段有若干个值可供选择,通常使用GET或POST方法;后续各行都称为请求头部
- Host:www.blue-bridge.com指定接收HTTP请求的主机
- Connection:Keep-Alive是告知服务器本次请求使用持久的TCP连接,服务器返回请求的对象后不关闭TCP连接
- HTTP1.1持久连接
- User-agent指定用户代理,也就是产生当前请求的浏览器类型
- Accept-language头部行指出要是所请求对象有指定语言版本,那么用户接收该版本,如果没有这个语言版本,那么服务器应该发送其默认版本
- user=jacky&pwd=654321表示多个参数名和参数值,可以是通过表单提交的,也可以是程序员自己编写的
打开浏览器,找到开发者工具,Network,就可看到请求详情
响应协议
HTTP响应,起始是状态行,之后是头部行(又称为消息报头),最后是响应正文;状态行有三个字段:协议版本字段、状态码字段、状态代码文本描述字段
- Connectlon:close头部行告知客户端自己将在发送完本消息后关闭TCP连接
- Date头部行指出服务器创建并发送本响应的日期和时间
- Server头部行指出本消息是由Apache服务器产生的,它与HTTP求情消息中的User-age头部行类似
- Last-Modified头部行指出对象本身的创建或最后修改日期和时间
- Content-Length头部行指出所发送对象的字节数
- Content-Type头部行指出包含响应正文中的对象的类型
状态行中的状态码
- 1**:指示信息,表示请求已接收,需要继续处理
- 2**:成功,表示请求已被成功接收、理解、接受
- 3**:重定向,代表需要客户端采取进一步的操作才能完成请求
- 4**:客户端错误,请求有语法错误或请求无法实现
- 5**:服务器端错误,服务器未能实现合法的请求
常见的状态吗
- 200:OK,客户端请求成功
- 301/302:Moved Permanently/Found,被请求的资源已永久/临时移动到新位置,需要重定向
- 400:Bad Request,客户端请求有语法错我,不能被服务器所理解
- 404:Not Found,请求资源不存在,输入你错误的URL
- 500:Internal Server Error,服务器发生不可预期的错误