HTTP:请求与响应

HTTP 的作用就是指导浏览器和服务器如何进行沟通。每个电脑都有很多端口,每一个端口都要做指定的事情
  a. 浏览器负责发起请求
  b. 服务器在 80 端口接收请求
  c. 服务器负责返回内容(响应)
  d. 浏览器负责下载响应内容
请求示例:

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"

用get请求百度:

1.  GET / HTTP/1.1  /*动词+路径(无意义跟文件没有任何关系)+协议*/
2.  Host:baidu.com  /*我想访问baidu.com */
3.  Accpet:text/html /*我希望接收到的是html文件 */

百度给的响应:

1.  HTTP/1.1 200 OK   /*我是HTTP/1.1,ok,没有问题,你需要什么我可以给你什么*/
2.  Content-Type:text-html;charset=utf-8  /* Content-Type的内容就是你想要的文件再给你一个字符集,方便你解释中文*/
Content-Length:10000  /*我传给你的html长度是10000个字节*/
3.  回车(\n)
4.  
…/*这个就是百度传给我们的文件内容,中间部分省略*/

用POST 请求百度(登录百度):

Post  /login HTTP/1.1  /*用post发请求来登录,用的是HTTP/1.1协议*/
Host:baidu.com  /*登录百度*/
Accept:application/json /*想要接收json*/
Content-Type:application/x-www-form-urlencoded /*发内容给它*/
Content-Length:10
回车(\n)
Username:fangfang&password:mima  /*这是我上传的内容*/

百度给的响应:

1.  HTTP/1.1 403 Forbidden  /*禁止登录*/
2.  Content-Type: application/json
Content-Length:200
3.  回车(\n)
4.  {“error”:密码错误}

请求的形式总结:

第一部分:动词 路径 协议/版本   HTTP/1.1
第二部分:你要告诉访问的主机你想要什么
第三部分:按回车(\n)
第四部分:要获取/上传的数据

响应的形式总结:

第一部分:协议号/版本号  状态码  状态解释
第二部分:访问的主机告诉你它给你了什么(第二部分是对第四部分格式的标注)
第三部分:按回车(\n)
第四部分:访问的主机传回给我们的文件内容

get和post的区别:get是获取内容;post是上传内容

用 Chrome 发请求:

  1. 打开 Network
  2. 地址栏输入网址
  3. 在 Network 点击,查看 request,点击「view source」就可以看到请求的前三部分了
  4. 如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

用 Chrome 查看响应

  1. 打开 Network
  2. 输入网址
  3. 选中第一个响应
  4. 查看 Response Headers,点击「view source」你会看到响应的前两部分
  5. 查看 Response 或者 Preview,你会看到响应的第 4 部分

资源
状态码详解

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