HTTP协议是(Hyper Text Transfer Protocol)超文本传输协议,基于TCP/IP通信协议来传递数据。
-
1.特点
- HTTP是无连接的,即每次客户端跟服务端建立连接只处理一个请求,然后就断开,好处是节约资源和时间。
- HTTP是无状态的,即对于事务处理没有记忆能力,后续的处理若依赖前面的事务,需要重传。缺点是每次事务处理需要传大量数据。优点是如果不依赖前置数据,服务器应答很快。
-
2.HTTP请求部分组成:请求行、请求头、空行和请求数据。
- 1.请求行:由请求方式、URL和HTTP协议构成。如:GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1
- 常用请求方式为get和post方法:
- get:常见通过url直接访问网站资源即为get请求方式。
- get方式特点:
- 请求参数拼接在url地址后面,“?”号隔开;
- 传递参数长度有限制 (一般128位)
- get方式特点:
- post: 请求参数不会限制在URL中。
- post方式特点:
- 请求参数封装在HTTP请求中,以名称/值的形式出现。
- 可以传输大量数据,无大小限制。
- post方式特点:
- 2.请求头:由名称/值组成,“:”分割,类似于键值对。
- 例如:
- User-Agent:请求的浏览器代理类型
- Accept:客户端可识别的内容类型列表
- Host:请求的主机名
- Connection: Keep-Alive 长链接还是closed
- Accept-Language: zh-cn 语言
- Cookie: PREF=ID
- Content-Type: application/json
- Content-Length: 14
- …
- 例如:
- 3.空行:请求头之后是一个空行,通知服务器后面不再有请求头。
- 4.请求数据:以上组合即为请求数据。
- 1.请求行:由请求方式、URL和HTTP协议构成。如:GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1
-
3.HTTP响应部分构成:状态行、响应头、空行、响应正文
- 1.状态行:包括协议版本和状态码、响应结果。例如:HTTP/1.1 200 OK
- 2.响应头:即消息报头,名称/值,“:”隔开。例如:
- Content-Type:text/html
- Content-Length: 14
- 3.空行:同上
- 4.响应正文: 可为html、json格式文本。
- 重要点: 状态码
- 1xx:指示信息–表示请求已接收,继续处理。
- 2xx:成功–表示请求已被成功接收、理解、接受。
- 3xx:重定向–要完成请求必须进行更进一步的操作。
- 4xx:客户端错误–请求有语法错误或请求无法实现。
- 5xx:服务器端错误–服务器未能实现合法的请求。
- 常用: 状态码
- 100 continue:请求继续
- 200 OK:客户端请求成功
- 302、307:重定向、临时重定向
- 305 Use Proxy:使用代理
- 400 Bad Request:客户端请求有语法错误
- 401 Unauthorized:客户端请求未经授权
- 403 Forbidden:服务器收到客户端请求,但是拒绝提供服务
- 404 Not Found:客户端请求资源找不到,比如输入错误的url等。
- 500 Internal Server Error:服务器内部错误。
- 503 Server Unavailable:服务器资源暂不可用