http介绍:
- HTTP(HyperText Transfer Protocol)超文本传输协议,浏览器和服务器通信的规则。
http传输过程简述
- 浏览器输入http://www.hackdig.com/
- 检查浏览器缓存和hosts文件,没有找到就向DNS服务器发起域名解析请求
- 获取域名对应的IP的地址
- 完成三次握手过程,建立tcp连接
- 浏览器发送http请求头信息
- web服务器应答,发送响应报文
- 四次挥手,关闭TCP连接
http请求报文
- 抓包结果查看
- 常用的请求方法
请求方法 | 作用 |
---|---|
post | 向指定资源提交数据进行处理请求。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
get | 请求指定的页面信息,并返回实体主体 |
put | 从客户端向服务器传送的数据取代指定的文档的内容 |
head | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
其他 | OPTIONS、PATCH、DELETE、TRACE 和 CONNECT 方法 |
- 常用的请求头
请求头 | 作用 |
---|---|
Host | 请求的服务器主机名 |
Connection | 表示客户端与服务连接类型;Keep-Alive表示持久连接,close已关闭 |
User-Agent | 浏览器通知服务器,客户端浏览器与操作系统相关信息 |
Accept | 告诉服务端,该请求所能支持的响应数据类型 |
Accept-Language | 浏览器通知服务器,浏览器支持的语言 |
Accept-Encoding | 浏览器通知服务器,浏览器支持的数据压缩格式 |
Referer | 表示这个请求是从哪个URL过来的 |
Cookie | 实现客户端与服务器之间状态的保持,存在于客户端(细看) |
… | … |
http响应报文
1.抓包结果查看
2. 状态码
- 1xx:指示信息,表示请求已接收,继续处理。
- 2xx:成功,表示请求已被成功接受,处理。
状态码 | 作用 |
---|---|
200 OK | 客户端请求成功 |
204 No Content | 无内容。服务器成功处理,但未返回内容。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况。 |
206 Partial Content | 服务器已经完成了部分GET请求。响应报文中包含Content-Range指定范围的实体内容 |
- 3xx:重定向
状态码 | 作用 |
---|---|
301 Moved Permanently | 永久重定向,表示请求的资源已经永久的搬到了其他位置。 |
302 Found | 临时重定向,表示请求的资源临时搬到了其他位置 |
303 See Other | 临时重定向,应使用GET定向获取请求资源。303功能与302一样,区别只是303明确客户端应该使用GET访问 |
307 Temporary Redirect | 临时重定向,和302有着相同含义。POST不会变成GET |
304 Not Modified | 表示客户端发送附带条件的请求时,条件不满足。返回304时,不包含任何响应主体。 |
- 4xx:客户端错误
状态码 | 作用 |
---|---|
400 Bad Request | 客户端请求有语法错误,服务器无法理解。 |
401 Unauthorized | 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。 |
403 Forbidde | 服务器收到请求,但是拒绝提供服务 |
404 Not Found | 请求资源不存在 |
- 5xx:服务器端错误,服务器未能实现合法的请求。
状态码 | 作用 |
---|---|
500 Internal Server Error | 服务器发生不可预期的错误。 |
503 Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 |
- 应答头
应答头 | 作用 |
---|---|
Allow | 服务器支持哪些请求方法(如GET、POST等) |
Content-Encoding | 文档的编码(Encode)方法 |
Content-Length | 表示内容长度 |
Content-Type | 表示后面的文档属于什么类型 |
Date | 当前的GMT时间 |
Expires | 文档过期时间 |
Last-Modified | 文档的最后改动时间。 |
Location | 表示客户应当到哪里去提取文档。 |
Refresh | 表示浏览器应该在多少时间之后刷新文档 |
Server | 服务器名字。 |
Set-Cookie | 设置和页面关联的Cookie。 |
ETag | 对于某个资源的某个特定版本的一个标识符,通常是一个 消息散列 |
… | … |