HTTP协议
HTTP协议概述
超文本传输协议是互联网上应用最广泛的一种网络协议,HTTP是网络传输的一种标准,规则。是一个客户端与服务器请求和应答的标准。
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。
HTTP协议特点
- 简单快速,客户向服务器请求服务时,只需要传输请求方法和路径。请求方式常用的有GET,POST。每种方法规定了客户与服务器练习的类型不同。
- 灵活,HTTP允许传输任意类型的数据对象。
- 无连接,限制每次连接只处理一个请求。服务器处理完客户的请求,并受到客户的应答后,断开连接,采用这种方式可以节省传输时间。
- 无状态,协议对于事务处理没有记忆能力。意味着,如果后续处理需要前面的信息。则它必须重传,这样可能导致每次连接传达的数据量增大。另一方面,在服务器不需要先前信息时它的应答较快。
HTTP,URL
URL介绍
URL:统一资源定位符。
URL是对从互联网上得到的资源的位置和访问方法的一种简介的表示方法。我们访问百度的网址就是一个URL
格式:protocol://hostname:port/directory/filename?name=value#anchor
部分 | 含义 |
---|---|
protocol | 浏览器打开文件所使用的协议,如http,https,ftp,telnet等 |
hostname | 服务器的主机名称,IP地址 |
port | 访问的端口号,默认为80 |
directory | 访问资源的目录名称 |
filename | 访问的资源名称 |
?name=value | 访问资源时,赴台的参数和参数值 |
#anchor | 访问当前资源的锚点 |
HTTP协议请求
请求的构成
http请求由三部分构成,请求行、请求头、请求正文
请求行的格式
格式分为三部分,每一个斜线/ 代表不同参数
三个参数的含义
- Method请求方式,GET,POST,必须大写
- Request-URL统一资源标识符(URI),不含主机部分
- HTTP-Version请求HTTP协议版本。HTTP/1.0短链接,HTTP/1.1长连接。
请求头含义
请求头相当于寄信时信封上的内容
报头名称 | 含义 |
---|---|
User-Agent | 用户代理。允许客户端将它的操作系统,浏览器和其他属性告诉服务器 |
Host | 指定被请求资源的主机和端口号,通常从HTTP URL中提取出来 |
Accept | 指定客户端接受哪些类型的信息。如image/gif, text/html ,*/*(所有类型) |
Accept-Language | 客户端可以接受的语言类型 |
Accept-Encoding | 指定可接受的内容压缩编码类型 |
Accept-Charset | 指定客户端接受的字符集 |
Cookie | 写到服务器端的COOKIE数据 |
Connection | 连接类型 |
Cache-Control | 控制缓存 |
Referer | 可以记录访问的来源,统计访问量。 |
请求正文
- GET方式,没有消息体,数据附在URL之后传递到服务器
- POST方式,有消息体,数据放在消息体中传递到服务器
HTTP协议响应
响应的构成
HTTP响应也由三部分构成。分别是 状态行、响应头、响应正文
响应行格式
- HTTP-Version 表示服务器HTTP协议的版本
- Status-Code 表示服务器返回的状态响应码
- Reason-Phrase 表示状态代码的文本描述
HTTP响应状态码
状态码由三位数字组成,第一位数字定义了响应类别,且有五种取值
- 1xx:指示信息:表示请求已接收,继续处理
- 2xx:成功:表示请求已被成功接受、理解、接受
- 3xx:重定向:要完成请求必须进行更进一步的操作
- 4xx:客户端错误:请求有语法错误或请求无法实现
- 5xx:服务器端错误:服务器未能实现合法的请求
状态码 | 含义 |
---|---|
200 | OK.请求成功 |
302 | Moved Temporarily 请求的资源临时从不同URL响应请求,临时跳转 |
304 | Not Modified文档的内容没有改变 |
400 | Bad Request语义有错,当前请求无法被服务器理解 |
401 | Unauthorized当前请求需要用户验证 |
403 | Forbidden服务器收到请求,但拒绝提供此服务 |
404 | Not Found请求资源不存在 |
408 | Request Timeout请求超时 |
500 | Internal Server Error 服务器发生不可预见错误 |
503 | Server Unavailable服务器当前不能处理客户端的请求, 一段时间后可能回复正常 |
响应头
一个HTTP响应代表服务器给浏览器回送的数据,同时告诉浏览器应当怎样处理数据
响应头部分含义
响应报头 | 含义 |
---|---|
Date | 告诉浏览器,请求页面的时间 |
Server | 服务器软件信息 |
Content-Length | 回送数据的字节数 |
Content-Type | 回送内容的类型 |
Expires | 表示存在时间,允许客户端在这个给时间之前不检查(发请求) |
Cache-Control | 缓存控制 |
X-Powered-By | 版权信息(程序支持) |
Keep-Alive | 连接类型 |
Location | 响应报头域用于重定向到一个新的位置 |
Refresh | 页面刷新时间 |
Last-modified | 指定服务器上保存内容的最后修订时间 |