一、http请求
http请求基本格式
===================================================
<request line> 请求行
<headers> 请求头(参数头)
<blank line> 空白行
[<request-body>] 请求实体(get没有 post有)
======================================
1.1 请求行:
位于请求消息的第一行
格式:请求方式 资源路径 HTTP版本号<CRLF回车换行空格制表符>
常用请求方式:get和post方式
get与post区别:
(1) 在客户端,get方式在通过URL提交数据,数据在URL中可以看到;post方式,数据放置在HTML HEADER内提交。
(2) get方式提交的数据最多只能有1k,而POST则没有此限制。
(3)安全性问题。使用 get的时候,参数会显示在地址栏上,不安全,而 post不显示,安全。如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
(4)幂等性
1.2 参数头:从第二行开始到第一个空行。作用:向服务器传递客户端的一些基本信息
http响应基本格式
===================================================
<status line> 状态行
<headers> 响应头
[<request-body>] 响应实体
======================================
唯一真正的区别在于第一行中用状态行代替了请求行。状态行(status line)通过提供一个状态码来说明所请求的资源情况。
状态码 | 含义 |
100~199 | 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 |
200~299 | 表示成功接收请求并已完成整个处理过程 |
300~399 | 为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址 |
400~499 | 客户端的请求有错误 |
500~599 | 服务器端出现错误 |
常用状态码:
200(正常):表示一切正常,返回的是正常请求结果
302/307(临时重定向):指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出。
304(未修改):表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。
404(找不到):服务器上不存在客户机所请求的资源。
500(服务器内部错误):服务器端的程序发生错误