HTTP协议
HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议。http协议定义web客户端如何才能够web服务器请求web页面,以及服务器如何把web页面传送给客户端。
HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。
然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。
“统一资源定位符” (URL)用来定义Web网页的地址。
http请求
http请求由请求行,消息报头,请求正文三部分构成。
1.请求行:用来说明请求类型,要访问的资源,以及所使用的HTTP版本.
请求类型:
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
1 GET 请求指定的页面信息,并返回实体主体。
2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 DELETE 请求服务器删除指定的页面。
6 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
9 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
2.请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。
- host:指出请求的目的地。
- user-agent:向服务器发送,包含了访问者系统引擎版本、浏览器信息的字段信息。
3.请求头部和请求正文之间有空行。
4.请求主体:可以添加任意的其他数据。
http响应
HTTP响应也由三部分组成,包括状态行,消息报头,响应正文。
1.状态行:由http协议版本号、状态码、状态消息三部分组成。
状态码:
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):
常见的http状态码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
2.消息报头:用来说明客户端要使用的一些附加信息。
3.消息报头后面的空行是必须的。
4.响应正文:服务器返回给客户端的文本信息。