HTTP请求的基本格式与状态码

基本格式

请求行

请求头(参数头)

空白行

[] 请求实体( GET没有, POST有 )

HTTP请求的基本格式与状态码_第1张图片

HTTP请求报文组成:请求行+请求头+请求体

HTTP响应报文组成:响应行+响应头+响应体

 

    请求行:包含用于请求的方法(HEAD/GET/POST),请求 URI 和 HTTP 版本。

    请求头:客户端的Cookie和User-Agent就放在这里.

    请求体: 比如客户端POST的数据就放在这里(对比:GET的数据放在请求行的URL里).

    响应行/状态行:包含表明响应结果的状态码,状态码描述和 HTTP 版本。

首部字段(即请求头、响应头):包含表示请求和响应的各种条件和属性的各类首部。

    一般有 4 种首部,分别是:通用首部、请求首部、响应首部和实体首部。

    响应头: 服务器的Set-Cookie和Server信息就放在这里.

报文主体:

    响应体: 比如服务器返回的HTML和JSON数据就放在这里.

 

一个完整的HTTP请求如下:

GET  /sample.jsp   HTTP/1.1                    //请求行

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)   //请求头

Accept:image/gif.image/jpeg,*/*      //请求头:指定客户端能够接收的内容格式类型

Accept-Language:zh-cn                   //请求头:指定客户端能够接受的语言类型

Connection:Keep-Alive                    //请求头:是否开启持久连接(keepalive)

Host:localhost                                  //请求头:服务器域名

Accept-Encoding:gzip,deflate          //请求头:指定客户端能够接受的编码类型

//注意这里有空的换行

username=jinqiao&password=1234   //请求体

 

HTTP请求的基本格式与状态码_第2张图片

 

HTTP请求的基本格式与状态码_第3张图片

 

HTTP请求的基本格式与状态码_第4张图片

HTTP请求的基本格式与状态码_第5张图片

 

状态码(只介绍常见的状态码)

200 OK

204 No Content

>该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。

>一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。

 

301 Moved Permanently

永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。

302 Found

临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。

 

400 Bad Request

该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态码。

403 Forbidden

>该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。

>未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。

404 Not Found

该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

 

500 Internal Server Error

该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的 bug 或某些临时的故障。

503 Service Unavailable

该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter 首部字段再返回给客户端。

 

 

 

 

你可能感兴趣的:(计算机网络,HTTP请求,状态码)