一、http协议
1.简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),是基于TCP/IP通信协议来传递数据的(HTML文件,图片文件,查询结果等)作用于应用层,端口号是80。作用于应用层。
相对于HTTP来说有一个更安全的HTTPS协议,端口号:443。
2.基本的工作原理
(1)请求
http的消息格式:由请求行(request line)请求头(header)空行和请求数据四部分构成。
请求行
请求行又分为:请求方法、URL、协议版本构成。
- 请求方法有多种,其中最重要的两个是get和post方法。
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体 |
POST | 向指定资源提交数据进行处理请求,(例如提交表单或上传文件),数据被包含在请求主体中,POST请求可能会导致新的资源的建立或已有的资源修改。 |
HEAD | 类似于GET请求,只不过返回的响应中没有具体内容,用于获取报头。 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
PATCH | 是对PUT方法的补充,用来对已知资源进行局部更新。 |
- URL:所需要的网址。
- 空行:必不可少!!!
- 协议版本:HTTP有多个版本,现在主要用1.1。
请求头
请求头有很多种,以下给出比较重要的几个:
- User-Agent代表发起访问是什么浏览器。
- Cookie里面记录了登录信息,或者上次请求服务端设置的信息。
- Referer表示这次请求是从哪里点过来的。
(2)响应
http响应也有三部分构成,分别是状态行,响应头,空行,响应正文
状态行
状态行通过状态码来说明所请求的资源情况:
- 状态码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
分类 | 描述 |
---|---|
1xx | 指示信息 – 表示请求已接收,继续处理 |
2xx : | 成功 – 表示请求已被成功接收,理解 |
3xx : | 重定向 – 要完成请求必须进行更进一步的操作 |
4xx : | 客户端错误 – 请求有语法错误或请求无法实现 |
5xx : | 服务器端错误 – 服务器未能实现合法的请求 |
- 下面是常见的HTTP状态码:
200 OK : 客户端请求成功
400 Bad Request:客户端请求有语法错误,不能被服务器解析
401 Unauthorized:请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
403 Forbidden:服务器收到请求,但是拒绝服务
404 Not Found:请求资源不存在。例如:输入错误的URL
500 Internal Server Error :服务器发生不可预期的错误
503 Server Unavaliable : 服务器当前不能处理客户端的请求,一段时间后可能恢复
响应头
HTTP响应头包含了网页的重要描述信息,比如网页的格式,网页的过期时间等。
响应正文
响应内容就是回应我们的需求,常用的媒体格式类型如下:
名称 | 类型 |
---|---|
text/html | HTML格式,提供给用户看的内容 |
text/plain | 纯文本格式 |
text/xml | XML格式 |
image/gif | gif图片格式 |
image/jpeg | jpg图片格式 |
image/png | png图片格式 |