Http协议

一 HTTP概述

特点:

  1. HTTP叫超文本传输协议,基于请求/响应模式的!
  2. HTTP是无状态,FTP有状态

二、请求协议

请求格式如下:

  • 请求首行   // 请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1
  • 请求头信息  // 请求头名称:请求头内容,即为key:value格式, 例如:Host:localhost
  • 空行               // 用来与请求体分隔开
  • 请求体           // GET没有请求体,只有POST有请求体

2.1 GET请求

HTTP默认的请求方法就是GET

  • 没有请求体
  • 数据必须在1k之内
  • GET请求数据会暴露在浏览器的地址栏中

GET请求常用操作:

  1. 在浏览器的地址栏中直接给出URL,那么就一定是GET请求
  2. 点击页面上的超链接也一定是GET请求
  3. 提交表单时,表单m默认使用GET请求,但可以设置POST

2.2 POST请求

(1)数据不会出现在地址栏中

(2)数据的大小没有上限

(3)有请求体

(4)请求体中如果存在中文,会使用URL编码

三、 响应协议

响应格式如下:

1、响应首行

2、响应头信息

3、空行

4、响应体

3.1 响应内容

  • HTTP/1.1 200 OK:响应协议为HTTP1.1,状态码为200,表示请求成功, OK是对状态码的解释
  • Server:WSGIServer/0.2 CPython/3.5.2:服务器的版本信息
  • Content-Type:text/html;charset =UTF-8:响应体使用的编码是UTF-8
  • Content-Length:724:响应体为724字节
  • Set-Cookie:JSESSIONID=C97E2B4C55553EAB46079A4F263435A4;Path=/hello:响应给客户端的Cookie
  • Date:Wed,25 Sep 2012 04:15:03 GMT:响应的时间,这可能会有8小时的时区差

3.2 状态码

  • 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
  • 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源
  • 500:请求资源找到了,但服务器内部出现了错误
  • 302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址
原文地址:https://www.cnblogs.com/renshaoqi/p/10440380.html