HTTP协议常见状态码
状态码的作用
负责标记客户端请求服务器的返回结果,标记服务器端的处理是否正常,通知出现的错误等等职责,借助客户端可以知道客户端是否正常请求服务端。
五大类:
1XX(信息类状态码,接收的请求正在处理)、2XX(成功状态码)、3XX(重定向)、4XX(客户端错误)、5XX(服务端错误)
常见状态码
200:代表OK,服务端正常处理
204:服务器接受的请求已成功处理,但在返回的响应报文中不含实体的主体部分,也就是没有内容
206:部分的内容,如客户端在进行范围请求,服务端成功执行了部分GET请求
301:跳转,永久性重定向,请求的资源已被分配了新的URI,已有应使用现在所指的URI
302: 临时性重定向,请求的资源已经分配了新的URI,希望用户本次用新的URI访问
303:由于请求对应的资源存在另一个URI
304:客户端发送附带条件的请求时,服务器端允许请求访问资源,单一发生请求未满足条件的情况下,直接返回304
307:临时重定向,和302有相同的含义
400:请求报文中存在语法错误,需要修改内容再次发请求
401:代表发送的请求需要有HTTP人认证的认证信息
403:对请求资源的访问被服务器拒绝
404:服务器上无法找到请求的资源
500:服务器端在执行请求发生错误
503:服务器暂时处于超负载或者停机维护无法处理请求

HTTP协议的工作特点和工作原理
工作特点:
基于B/S模式,通信开销小、简单快速、传输成本低,比如打开浏览器就可以访问,使用灵活、可使用超文本传输协议(HTML)、节省传输时间、无状态
工作原理:
客户端发送请求给服务器,创建一个TCP连接,指定端口号。默认80,连接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求后,服务器会向客户端返回状态信息和数据内容
HTTP协议常见请求/响应头
Content-Type(请求的实体对应的信息包括字符集)、Accept(指定客户端能接收的内容类型)、Origin(最初的请求来源于哪里,主要用户post请求)、Cookie(代表http请求发起时,发送给服务器端cookie的值)、Cache-Control(指定请求和响应的缓存机制)、User-Agent(用户信息)、Referrer(上级请求路径)、X-Forwarded-For(请求端真实的IP,做代理时可以用它获取)、Access-Control-Allow-Origin(允许特定的域名访问,通常用于跨域)、Last-Modified(请求资源的最后响应时间)

GET和POST请求的区别

1:在浏览器端,反复返回上一页在GET请求上是没有什么多大变化的,而POST就会重新提交
2:GET可以被收藏为书签,而POST不可以被收藏为书签
3: GET请求可以被浏览器缓存,POST不会
4:GET在历史记录中会保存参数,而POST不会
5:数据长度中GET有限制,最大长度取决于浏览器大小,一般2048个字符,POST没限制
6: GET在允许的数据类型也有差别,GET只允许ASC2这样的字符,POST没限制,也允许二进制数据,GET只允许GB2312
7:GET的安全性差点,是URL的一部分;POST相对来说安全点儿,不会被保存到服务器WEB日志中
8:效率上GET比POST快,以下是原因

①.post请求包含更多的请求头
  因为post需要在请求的body部分包含数据,所以会多了几个数据描述部分的首部字段(如content-type),这其实是微乎其微的
②.post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
  post请求的过程:
  1.浏览器请求tcp连接(第一次握手)
  2.服务器答应进行tcp连接(第二次握手)
  3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  4.服务器返回100 continue响应
  5.浏览器开始发送数据
  6.服务器返回200 ok响应
  get请求的过程
  1.浏览器请求tcp连接(第一次握手)
  2.服务器答应进行tcp连接(第二次握手)
  3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  4.服务器返回200 ok响应
  也就是说,目测get的总耗是post的2/3左右
③.get会将数据缓存起来,而post不会
使用ajax采用get方式请求静态数据(比如html页面,图片)的时候,如果两次传输的数据相同,第二次以后耗费的时间将在10ms以内(chrome测试),而post每次耗费的时间都差不多……
  chrome下和firefox下如果检测到get请求的是静态资源,则会缓存,如果是数据,则不缓存,但是IE这个傻X啥都会缓存起来

了解一下Http常见状态码、Http协议的工作特点和原理、Http请求Post与Get的区别的更多相关文章

  1. HTTP协议、HTTP请求方法、常见状态码、HTTP消息

    HTTP协议 客户端请求,服务端响应.浏览器与服务器不建立持久连接,响应后连接失效. HTTP请求方法 一.GET GET方法用于获取请求页面的指定信息. 二.HEAD 除了服务器不能在响应里返回消息 ...

  2. http协议与常见状态码

    什么是http: http是属于应用层(基于tcp的连接方式)的面向对象的协议,是计算机通过网络通信的规则,使得浏览器向web服务器请求信息和服务 http协议特点: http是一种无状态协议(对食物 ...

  3. 19. HTTP协议二:HTTP请求与响应、常见状态码

    HTTP请求与响应 HTTP请求 HTTP请求是指从客户端到服务器端的请求消息.HTTP请求主要由三部分构成,请求行.请求头(headers).body(请求数据). 上图是笔者用Charles抓包工 ...

  4. HTTP协议及常见状态码

    超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议.它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的. HTTP遵循经典的客户端-服务端模型,客户端打开一 ...

  5. Http常见状态码说明

    一些常见的状态码为: 200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码.代码 说明100 ...

  6. http常见状态码有哪些?

    ajax常见面试题 1:什么是ajax?ajax作用是什么? 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术. ajax用来与后台交互 2:原生js ajax请求有几个 ...

  7. 计算机网络【9】—— HTTP1.0和HTTP1.1的区别及常见状态码

    一.HTTP1.0与HTTP1.1的区别 1.HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理 HTTP 1.0规定浏览器与服务器只保持 ...

  8. HTTP常见状态码(404、400、500)等错误

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 ...

  9. Python Requests库 Get和Post的区别和Http常见状态码

    (1)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. (2)   GET方式提交的数据最多只能有1024 Byte,而P ...

随机推荐

  1. python_9_集合

    什么是集合? --一种无序,没有重复元素的一种数据类型            -- 形式:   {元素1,元素2,......} 如何把一个列表变成一个集合? --set(列表)            ...

  2. WebSphere--基本特性

    WebSphere应用服务器使您能够为Servlet 的开发实现 "一次写成,各处使用"的目的.该产品包括一个基于 Java 的 Servlet 引擎,独立于 Web 服务器和它所 ...

  3. 用Markdown格式写一份前端简历

    1. 基本信息 姓名:xxx 手机号码:1380000xxxx 学校:南昌大学 学历:大学本科/硕士/博士 工作经验:3年以上Web前端 电子邮件:xxx@outlook.com 2. 求职意向 工作 ...

  4. Activity组件安全(下)

    什么是Activity劫持 简单的说就是APP正常的Activity界面被恶意攻击者替换上仿冒的恶意Activity界面进行攻击和非法用途.界面劫持攻击通常难被识别出来,其造成的后果不仅会给用户带来严 ...

  5. VUE-脚手架搭建

    1.什么vue-cli    vue-cli是vue.js的脚手架,用于自动生成vue.js工程模板的. 步骤: 2.安装   ->全局安装   npm install vue-cli -g 或 ...

  6. FTP 安装配置

    FTP 安装配置: 一.基础操作 yum install -y ftp yum install -y vsftpd service iptables stop chkconfig iptables o ...

  7. c# 对象 & 类

    类定义中可以使用的访问修饰符组合 none or internal 类只能在当前工程中访问 public 类可以在任何地方访问 abstract or internal abstract 类只能在当前 ...

  8. 安装golang的mongodb驱动mgo速记

    这里介绍的方法只适用于Centos平台,测试版本为centos 6.5 下载源码安装实在麻烦,这里采用比较简单的方法给GO安装mongodb驱动 安装mgo之前,需要先安装bzr yum -y ins ...

  9. ABP官方文档翻译 4.6 审计日志

    审计日志 介绍 关于IAuditingStore 配置 通过特性启用/禁用 注意事项 介绍 维基百科:“审计追踪(也称为审计日志)是与安全相关的按时间先后的记录.记录集合.记录的目的地和源,提供一系列 ...

  10. Spring整合JDBC及事务处理

    1.Spring整合JDBC DAO是数据访问对象(data access object)的简写.接口是实现松耦合的关键,Spring也鼓励使用接口,但不是强制的. 捕获异常时希望能尝试从异常状态中恢 ...