Hyper Text Transfer Protocol(超文本传输协议)
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
-
http 状态值 ajax 的 readyState
- 0 - (未初始化)还没有调用send()方法
- 1 - (载入)已调用send()方法,正在发送请求
- 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
- 3 - (交互)正在解析响应内容
- 4 - (完成)响应内容解析完成,可以在客户端调用了
-
http 状态码
1xx:请求收到,继续处理 2xx:操作成功收到,分析、接受 3xx:完成此请求必须进一步处理 4xx:请求包含一个错误语法或不能完成 5xx:服务器执行一个完全有效请求失
- 200, OK,访问正常
- 301, Moved Permanently,永久移动
- 302, Move temporarily,暂时移动
- 304, Not Modified,未修改
- 307, Temporary Redirect,暂时重定向
- 401, Unauthorized,未授权
- 403, Forbidden,禁止访问
- 404, Not Found,未发现指定网址
- 500, Internal Server Error,服务器发生错误
- HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
- HTTP响应报文由状态行(status-line)、**消息报头(header)和响应正文(response-body)**三个部分组成。
请求行由三部分组成:请求方法,请求URL(不包括域名),HTTP协议版本
请求方法比较多:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
请求头部由关键字/值对组成,每行一对
User-Agent : 产生请求的浏览器类型
Accept : 客户端希望接受的数据类型,比如 Accept:text/xml(application/json)表示希望接受到的是xml(json)类型
Content-Type:发送端发送的实体数据的数据类型。
比如,Content-Type:text/html(application/json)表示发送的是html类型。
Host : 请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
1.2.1 Content-Type
常见的Content-Type:
Content-Type
解释
text/html
html格式
text/plain
纯文本格式
text/css
CSS格式
text/javascript
js格式
image/gif
gif图片格式
image/jpeg
jpg图片格式
image/png
png图片格式
application/x-www-form-urlencoded
POST专用:普通的表单提交默认是通过这种方式。form表单数据被编码为key/value格式发送到服务器。
application/json
POST专用:用来告诉服务端消息主体是序列化后的 JSON 字符串
text/xml
POST专用:发送xml数据
multipart/form-data
POST专用:下面讲解
作者:Lxylona
链接:https://www.jianshu.com/p/0015277c6575
状态行也由三部分组成:服务器HTTP协议版本,响应状态码,状态码的文本描述
格式:HTTP-Version Status-Code Reason-Phrase CRLF
比如:HTTP/1.1 200 OK
状态码:由3位数字组成,第一个数字定义了响应的类别
- General:概括信息,浏览器自动生成概括,不是http协议内容。
Accept:告诉服务器能够发送的媒体类型。
Accept-Encoding:告诉服务器能发送哪些压缩格式。
Connection:客户端和服务器是否保持连接。
Host:接收请求的服务器的主机名和端口号。
Origin:请求的网站源信息。
Referer:提供了包含当前请求URI的文档的URL,告诉服务器自己的来源。
User-Agent:发送请求的客户端应用程序。
cookie:客户端的一些信息保存用户的登录状态等。