简介:

  HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。

特点:

  • 基于TCP/IP
  • 基于请求、响应模式:先从客户端开始建立通信,服务端在没有接受请求之前不会发送响应
  • 无状态保存:对请求和响应之间的通信状态不进行保存。对发送过的请求和响应不做持久化处理。但是有cookie和session会话跟踪技术
  • 无连接:限制每次连接只处理一个请求。处理完请求,收到客户端的应答后,断开连接。

浏览器向服务器发送数据,服务器向浏览器发送数据都需要遵循的协议。

请求格式:

 1 请求首行:
 2     请求方式  请求的url  请求协议的版本
 3     GET      //?a=1      HTTP/1.1\r\n
 4 
 5 请求头
 6 Host: 127.0.0.1:8800\r\n
 7 Connection: keep-alive\r\n
 8 Pragma: no-cache\r\n
 9 Cache-Control: no-cache\r\n
10 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\r\n
11 Accept: image/webp,image/apng,image/*,*/*;q=0.8\r\n
12 Referer: http://127.0.0.1:8800/\r\n
13 Accept-Encoding: gzip, deflate, br\r\n
14 Accept-Language: zh-CN,zh;q=0.9
15 16 \r\n\r\n
17 请求体

浏览器发送的数据。服务器器以\r\n隔开。\r\n\r\n后面的是请求体。
如果是get请求:数据放url上
如果是post请求:数据放末尾,也就是只有post才有请求体。get是没有的

响应格式: 

 1 响应首行
 2 HTTP/1.1    200      OK\
 3 协议版本  状态码  状态码短语
 4 
 5 响应头
 6 和请求的响应头差不多
 7 
 8 响应主体
 9 r\n\r\n%s'%data
10 
11 常用状态码
12 1
13 2   成功
14 3   重定向
15 4   请求的资源找不到   客户端错误       服务端无法处理请求
16 5   服务端错误         服务端处理请求出错

请求方式:get和post的区别

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.。
  • GET与POST请求在服务端获取请求数据方式不同。
  • GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.。一个安全,一个不安全。

常见状态码:

 

  

 

版权声明:本文为xjmlove原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xjmlove/p/9878100.html