本文共 3084 字,大约阅读时间需要 10 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | HTTP服务请求步骤: (1)建立连接 (2)接受请求 (3)处理请求 (4)访问资源 (5)构建响应 (6)发送响应 (7)记录事务处理过程 http报文: http事务,一次请求以及与其对应的响应 http方法:get,put, head ,post,delete http请求报文格式: <method> <request-URL> <version> <headers> <entity-body> http响应:response http响应报文格式: <version> <status> <reason-phrase> <headers> <entity-body> <method>:请求方法,希望服务器端执行的动作,如GET /HEAD/POST 等 <request-url>:请求的资源,可以是相对路径,也是完整的URL <version>:协议版本,格式HTTP/<major>.<minor>,如http /1 .0 <headers>:HTTP首部 <status>:状态码 <reason-phrase>:原因短语,数字状态码易读信息 <entity-body>:主体部分 HTTP首部: 通用首部:请求和响应都可以使用 请求首部: 响应首部: 实体首部:用于指定实体属性 扩展首部:非标准的首部,可能是由程序开发者创建的,例如X-Forward-For 通用首部: Connection:定义C /S 之间关于请求/响应的有关选项 对于http /1 .0,Connection:keep-alive Via:显示了报文经过的中间节点 Cache-Contor:缓存指示 Pragma: 请求首部: Accept */* Accept-Encoding gzip , deflate Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Connection keep-alive Cookie U_TRS1=0000000e.5a674e57.58f78476.3ab04d22; Host client.show.sina.com.cn Referer http: //www .sinashow.com/ User-Agent Mozilla /5 .0 (Windows NT 10.0; WOW64; rv:54.0) Gecko /20100101 Firefox /54 .0 Client-IP: Host:请求的主机名和端口号 Refer:指明了请求当前资源的原始资源的URL,可用于防盗链 User-Agent:用户代理,使用什么工具发出的请求 Accept首部:用于标明客户端更倾向于支持的方式(比如字符集是否要压缩,) Accept:指明服务器能发送的媒体类型 Accept-Charset:支持使用的字符集 Accep-Encoding:支持使用的编码方式 Accept-language:支持使用语言 条件请求首部: Expect:期望 If-Modified-Since:是否在指定时间以来修改过次资源 If-None-Match 跟安全相关的请求首部: Authorization:客户端提交给服务端的认证数据,如账号和密码 Cookie:客户端发送给服务器端身份标识 Cookie2 响应首部: Age: Server:向客户端标明服务器程序名称和版本 协商首部: Accept-Ranges:对当前资源来讲,服务器所能接受的范围类型 Vary:首部列表,服务器会根据列表中的内容挑选出最适合的版本发送给客户端 跟安全相关的请求首部: Set-Cookie:服务器端在某客户端第一次请求时发给令牌 Set-Cookie2: WWW-Authentication:质询,即要求客户端提供账号和密码 实体首部: Location:资源的新位置 Allow:允许对此资源使用的请求方法 内容首部: Content-Encoding Content-Language Content-Length Content-Location Content-Range Content-Type 缓存首部: ETag:实体标签 Expires:过期期限 Last-Modified:上一次的修改时间 HTTP请求方法 安全方法:GET、HEAD、 POST,提交表单的方法 PUT、DELETE、OPTION、TRACE、 扩展方法:LOCK、MKCOL、COPY、MOVE GET:请求获取一个资源,需要服务器发送(有或者没有) HEAD:跟GET相似,但其不需要服务发送资源而仅传回响应首部 POST:支持HTML表单提交,表单中有用户填入的数据,这些数据会发送到服务器端,由服务器存储至某位置(例如发送处理程序) PUT:与GET相反,向服务器写入文档,发布系统 DELETE:请求删除URL指向的资源 OPTION:探测服务器端对某资源所支持的请求方法 TRACE:跟踪请求要经过的防火墙、代理或网关 HTTP状态码 1xx:信息性状态码 100 请求继续 2xx:成功状态码 200:OK 201:Created 3xx:重定向的状态码 301:Moved Permanently 永久重定向 在响应报文中使用 "Location:URL" 指定资源现在所处的位置 302:Found 临时重定向 在响应报文中使用首部 "Location:URL" 指定临时资源位置 304:Not Modified,条件或请求中使用 4xx:客户端类的错误 403:Forbidden,请求被服务器拒绝 404:Not Found 服务器无法找到请求的URL 405:Method Not Allowed,不允许使用此方法请求相应的URL 5xx:服务器端的错误 500:Internal Server Error,服务器内部错误(比如权限错误) 502:Bad Gateway 代理服务器从上游收到的一条伪响应 503:Service Unavaliable,服务器此时无法提供服务,但将来可能可用 |
注:本文来自马哥视频学习记录的笔记。