最后更新:2022-07-11 04:27:27 手机定位技术交流文章
根据HTTP标准,HTTP请求可以使用多个请求方法。
HTTP1.0定义了三个请求方法:GET,POST和HEAD方法。
HTTP1.1新增五种新请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。
HTTP协议基于客户端/服务器模式,面向链接。典型的HTTP事务处理包括以下进程。
以下步骤用于请求/响应HTTP:
1.建立客户端与服务器之间的连接
一个HTTP客户端,通常是一个浏览器,与Web服务器的HTTP端口建立一个TCP插座连接(默认80)。
客户向服务器发送HTTP请求
客户端通过TCP接口发送一个文本请求消息,一个请求消息由请求行、请求标题、空行和请求体的四个部分组成。
服务器接受请求并返回HTTP响应
网络服务器分析请求,位置请求资源。 服务器将资源复制到TCP接口并从客户端读取。 响应由四个部分组成:响应线、响应头、空线和响应体。
关闭客户端与服务器之间的连接
若connection 模式为close,然后服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,然后连接将维持一段时间,在 这 一 期间, 可以 继续 收到 请求 ;
HTTP请求分别由三个部分组成:请求行,请求头(请求头),请求体(请求文本)。
1.请求行:请求数据的第一行,格式如下:
method request-URI HTTP-Version
其中method代表请求方式,request-URI代表统一资源代表的请求,HTTP-Version表示协议的版本。 以下图显示:对于此请求行,
GET代表请求方式,/代表统一资源代表的请求,HTTP/1.1代表协议版本。
2.请求项:请求项下一行,格式为key:value
HTTP共同请求标题:
如下图:
3.请求主体: POST请求的最后部分,存储请求参数
GET和 POST之间的区别
①GET请求的请求参数会放在请求行中、URL之后,以?分割URL和传输数据,参数之间以&相连,如csdn.net/md?name=test1&id=123。POST的请求的请求参数在请求体中。
2 GET提交的数据大小有限 ( 因为浏览器仅限于URL的长度 ) POST方法提交的数据并不有限.
3 GET 方法需要 Request.The 变量值由 QueryString 获取, POST 方法由 Request.Form 获取变量值。
④GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
在接收和解释请求消息后,服务器返回一个HTTP响应消息。 HTTP响应也由三个部分组成,分别:反应线,反应头,反应体。
答复线:答复数据的第一行,格式如下:
HTTP-Version status-code status-phrase
其中HTTP-Version代表协议版本,status-code代表响应状态码,status-phrase以下图显示:
对于此响应行,HTTP/1.1代表协议版本,200代表响应状态码,OK表示状态码描述。
2. 响应头:在响应行的下一行,格式为key:value形式 HTTP常见响应头
如下图:
3.响应机构:最后部分,响应数据的存储
国家代码由三个数字组成,第一个数字定义了响应类别,总共有五个主要类别:
| 状态码分类 | 说明 |
|---|---|
| 1xx | 答复:临时国家代码,说明请求已收到并继续处理 |
| 2xx | 成功 - 表示请求已成功收到并处理 |
| 3xx | 重新定位 – 让客户重新启动请求完成处理 |
| 4xx | 客户端错误-请求有语法错误或请求无法实现 |
| 5xx | 服务器终止错误-服务器未能实现合法请求 |
常见状态码
| 状态码 | 状态码描述 | 解释 |
|---|---|---|
| 200 | OK | 请求已正常处理 |
| 302 | Found | 指示了秋季锁定资源已经被移动到地址响应头条给你的URL,并且浏览器会自动重新访问页面 |
| 304 | Not Modified | 隐藏的向导,告诉客户端请求的资源从上次获取服务器以来没有改变,并且可以直接在本地缓存中使用 |
| 400 | Bad Request | 客户端有一个语法错误,不能由服务器理解 |
| 403 | Forbidden | 服务器收到请求,但拒绝提供服务。 例: 无限制访问相关资源 |
| 404 | Not Found | 请求资源不存在,通常URL输入不正确,或网站资源被删除 |
| 428 | Precondition Required | 服务器请求一个条件请求,要求客户端访问一个资源,并且必须携带一个特定的请求头 |
| 429 | Too Many Requests | 请求太多,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间后可以请求)响应头一起使用 |
| 500 | Internal Server Error | 服务器发生不可预期的错误。服务器端在执行请求时发生了错误。也有可能是web应用存在bug或某些临时故障 |
| 503 | Service Unavailable | 服务器暂时过载或处于备用维护状态,无法处理请求 |
| 511 | Network Authentication Required | 客户端需要验证才能获得网络权限 |
本文由 在线网速测试 整理编辑,转载请注明出处。