超文本传输协议(HTTP,HyperText Transfer Protocol)是用于从服务器传输超文本到本地浏览器的传输协议,是应用最为广泛的网络协议。B/S网络架构的核心是HTTP,掌握HTTP对一个从事互联网工作的程序员来说非常重要。要理解HTTP,还需要了解HTTP中的HTTP Header,HTTP Header控制着成千上万的用户的数据传输以及用户浏览器的渲染行为和服务器的执行逻辑。
常见的HTTP请求头:
Accept-Charset:指定客户端可以接受的字符集编码
Accept-Encoding:指定浏览器可以支持的Web服务器返回内容压缩编码类型
Accept-Language:指定浏览器可以接受的语言
Host:表示请求的服务器的域名和端口号
User-Agent:客户端将它的操作系统、浏览器和其他属性告诉服务器
Connection:表示是否需要持久连接
常见的HTTP响应头:
Server:表示Web服务器软件名称
Content-Type:表示返回内容的MIME类型
Content-Encoding:表示Web服务器只是的返回内容压缩编码类型
Content-Language:表示响应体的语言
Content-Length:表示响应体的内容长度,这个长度是经过了压缩后的长度
Keep-Alive:表示保持连接的时间
常见的HTTP状态码:
200:表示客户端请求成功
302:表示临时跳转
400:表示客户端请求有语法错误,不能被服务器识别
403:表示服务器收到请求,但是拒绝提供服务
404:表示服务器找不到请求的资源
500:表示服务器发生了不可预期的错误
HTTP工作流程:
1、首先客户端与服务器需要建立连接,只需要单击某个超级链接,HTTP的工作开始。
2、建立连接后,客户端发送一个请求给服务器(默认请求服务器的80端口),请求方式的格式为:统一资源标识符(URL)+协议版本号+MIME信息包括请求修饰符、客户端信息和可能的内容。
3、服务器接收到请求后,给予响应的相应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后面是MIME信息包括服务器信息、实体信息和可能的内容。
4、客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后克尔护短和服务器断开连接。
HTTP协议的主要特点:
1、支持客户端/服务器模式
2、简单快速,客户端向服务器发送请求服务时,只需要传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度快
3、灵活,HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记
4、无连接,无连接的含义是限制每次连接只处理一个请求,服务器处理完成客户端的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
5、无状态,HTTP协议是无状态协议,无状态是指协议对于事物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传输的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快