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,服务器此时无法提供服务,但将来可能可用
注:本文来自马哥视频学习记录的笔记。
时间: 2024-11-03 05:29:01