本文包含四个部分,简要介绍HTTP请求、HTTP响应、chrome开发者查看、与CURL命令。
Part1:HTTP请求
1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS 允许客户端查看服务器的性能。8TRACE回显服务器收到的请求,主要用于测试或诊断。
当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:
l 请求方法URI协议/版本
l 请求头(Request Header)
l 请求正文2 部分中的 Content-Type 标注了第 4 部分的格式
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
Part2:HTTP响应
在接收和解释请求消息后,服务器会返回一个HTTP响应消息。与HTTP请求类似,HTTP响应也是由三个部分组成,分别是:状态行,消息报头,相应正文。
常见状态码:
状态码:由3位数字组成,第一个数字定义了响应的类别
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:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。
4xx:客户端错误
- 400 Bad Request:客户端请求有语法错误,服务器无法理解。
- 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
- 403 Forbidden:服务器收到请求,但是拒绝提供服务
- 404 Not Found:请求资源不存在。比如,输入了错误的url
- 415 Unsupported media type:不支持的媒体类型
5xx:服务器端错误,服务器未能实现合法的请求。
- 500 Internal Server Error:服务器发生不可预期的错误。
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/<!DOCTYPE html>
<!--STATUS OK--><html> <head>
...
Part3:用chrome查看内容
转自:饥人谷
请求:
- 打开 Network
- 地址栏输入网址
- 在 Network 点击,查看 request,点击「view source」
- 点击「view source」
- 点击「view source」
- 点击「view source」
- 终于点了?可以看到请求的前三部分了
- 如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到
响应
- 打开 Network
- 输入网址
- 选中第一个响应
- 查看 Response Headers,点击「view source」,点击「view source」,点击「view source」
- 你会看到响应的前两部分
- 查看 Response 或者 Preview,你会看到响应的第 4 部分
Part4:CURL命令
一、查看网页源码
直接在 curl 命令后加上网址,就可以看到网页源码。
二、自动跳转
有的网址是自动跳转的。使用 -L
参数,curl 就会跳转到新的网址。
三、显示头信息
-i
参数可以显示 http response 的头信息,连同网页代码一起。-I
参数则只显示 http response 的头信息。
四、显示通信过程
-v
参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。
五、发送表单信息
发送表单信息有 GET 和 POST 两种方法。GET 方法相对简单,只要把数据附在网址后面就行。
六、HTTP动词
curl 默认的 HTTP 动词是 GET,使用 -X
参数可以支持其他动词。
...
键入 curl --help 便可查看完整使用方式
