HTTP请求

HTTP是 hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。

HTTP结构

  1. 客户端是一个应用程序(Web浏览器或其他任何客户端),它连上web服务器后,可以从web服务器中获取。
  2. 服务器同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等)接收客户端的请求,响应数据。
  3. 客户端和服务器需要遵守一定的通讯格式,HTTP协议来定义他们的通讯格式。

HTTP请求报文

请求报文包含四部分: 请求行(request line), 请求头部(header),空行,请求数据

// 请求行   (请求方式  请求资源  http协议版本)
POST /chapter17/user.html HTTP/1.1  
//  请求头  (头部字段名:值)
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3  
Host: localhost:8088
Accept-Language: en, mi
// 空行

// 请求数据
name=tom&pwd=0000

HTTP响应报文

响应报文包含四部分: 响应行(response line),响应头部(header),空行,响应数据

// 响应行 (http协议版本 状态码以及状态描述)
HTTP/1.1 200 OK
// 响应头部  (头部字段名:值)
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Accept-Ranges: bytes
Content-Type: text/plain
// 空行

// 响应数据
{"userName":"tom", "realName":"TomJosh"}

HTTP请求方式

常用的一些请求方式:

  1. GET: 只被用于获取数据,请求指定的页面信息,并返回实体主体
  2. POST: 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改
  3. PUT: 从客户端向服务器传送的数据取代指定的文档的内容
  4. DELETE: 请求服务器删除指定的资源

HTTP响应状态码

常见的状态码:

  1. 200: 请求成功
  2. 301: 资源(网页等)被永久转移到其它URL
  3. 404: 请求的资源(网页等)不存在
  4. 500: 内部服务器错误
状态码 状态英文名 描述
200 OK 请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 请求要求用户的身份认证
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求

你可能感兴趣的:(HTTP请求)