HTTP协议基础

HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。

请求部分由三部分组成:
  • Requset line:请求行,位于第一行
  • Request headers:请求消息头,从第二行开始至第一个空行结束
  • Request body:请求正文,从第一个空行之后的都是正文

具体格式如下:

Method Path-to-resource Http/Version-number
请求消息头
空行
请求正文

下面是一个HTTP请求的例子:

POST /index.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: [http://localhost/](http://localhost/)
Content-Length:25
Content-Type:application/x-www-form-urlencoded

username=aa&password=1234
响应部分也由三部分组成:
  • Response line:响应行,位于第一行
  • Response headers:响应消息头,从第二行开始至第一个空行结束
  • Response body:响应正文,从第一个空行之后的都是正文

具体格式如下:

Http/Version-number Statuscode message
响应消息头
空行
响应正文

下面是一个HTTP响应的例子:

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8


      
      
            
      

HTTP之状态码(要背)

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求
常见状态码:

200 OK                        //客户端请求成功
400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden                 //服务器收到请求,但是拒绝提供服务
404 Not Found                 //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error     //服务器发生不可预期的错误
503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
使用Chrome开发者工具查看 HTTP 请求响应内容:
  1. 打开Chrome浏览器,在浏览器中任意位置右击;
  2. 点击“检查”,打开浏览器内置的开发者调试平台;
  3. 点击“Network”选项卡;
  4. 点击“Name”一栏下面的任意一条信息;
  5. 随后将出现如下图页面:
    点击Request Headers可查看请求消息,点击Response Headers可查看响应消息
    点击「view source」(重要的话重复三遍)
请求view source.PNG
  1. 点击「view source」后即可查看http的相关信息了,包括请求头部信息、响应头部信息、Cookie等
请求与响应.PNG
curl命令:创建请求
curl -s -v "https://www.baidu.com"

curl命令.PNG

更多curl命令的内容可前往阮一峰的curl网站开发指南进行查看。

你可能感兴趣的:(HTTP协议基础)