精华内容
下载资源
问答
  • Oracle数据库配置错误信息Oralce数据库的错误信息经常会出现,我们看见的都是错误的代码,至于错误原因究竟是什么还一时半会难以解答,所以就把一些常见的错误整理了一下,来看看也许对你有帮助的.1. Oracle客户端网络...

    Oracle数据库配置错误信息

    Oralce数据库的错误信息经常会出现,我们看见的都是错误的代码,至于错误原因究竟是什么还一时半会难以解答,所以就把一些常见的错误整理了一下,来看看也许对你有帮助的.

    1.   Oracle客户端网络配置:

    l          在Oralce产品安装完成后,为了与数据库服务器进行连接或者是两台数据库之间进行数据复制,则必须进行网络连接配置。

    l          Oracle9i Net Service配置方法:

    Oracle9i Net Service的连接配置可以使用数据库实例ORACLE_SID,或者是使用Oracle9i的参数           SERVICE_NAMES。配置Oracle9i客户端与Oracle9i服务器端的连接,也是生成Oracle9i Net                        Service客户端网络配置文件tnsnames.ora,也可以编辑这个文件。

    tnsnames.ora文件在Window与Unix下的存储目录:

    Window NT/2000: D:/oracle/ora90/network/admin/tnsnames.ora

    UNIX:/home/app/oracle/product/9.0.1/network/admin/tnsnames.ora

    如果tnsnames.ora文件配置不正确,则错误信息会记录在连接日志信息文件中,其错误信息内容为:

    The error strutct:

    Nr err code:0

    Ns main err code:12560

    TNS -12560:TNS: 协议适配器出现错误

    ns secondary err code:0

    nt main err code:530

    tns-00530:协议适配器错误

    nt secondary err code:2

    nt OS err code:0

    在配置Oracle9i的连接配置中,其服务器端需要配置监听程序进程配置文件listener.ora,如果服务器端监听进程没有启动,则出现以下错误信息:

    ERROR:

    ORA-12651:TNS:没有监听器

    该信息说明所要连接的服务器没有启动监听进程Listener(该进程为Oracle服务器上操作系统进程,监听进程没有启动时,服务器可以正常进行,但是客户端不能与服务器产生连接。这时可以在服务器使用操作系统命令lsnrctl正常起启动监听进程)具体方法如下:

    C:>lsnrctl start

    停止监听方法:

    C:>lsnrctl stop

    修改计算机名后则需要修改监听进程中的HOST,否则监听程序会出现以下错误:

    Tns-12545:因目标主机或者对象不存在,连接失败

    Tns-12560:tns:协议适配器错误

    Tns-00515: 因目标主机或者对象不存在,连接失败

    Error:1001:unknow error

    在Window NT/2000中,使用服务列表启动listener.ora服务时也会出现同样的错误信息

    (对话框)进行意外中止

    这时,可以修改listener.ora中的下一列信息中HOST处的主机名:

    (ADDRESS=(PROTOCOL=TCP)(HOST=SUN4500)(PORT=1521))

    该名称必须与实际符合,重新启动监听程序即可。附:在listener.ora文件中,HOST处允许使用IP地址,这样修改机器名后就不会引起监听程序启动失败。

    此外在服务器与listener.ora文件统一目录中还有一个文件即:tnsnames.ora文件,此文件是用于两个服务器之间的连接配置,即Oracel分布式环境中的网络配置该文件的目录如下:

    Window NT/2000 D:\oracel\ora90\network\admin\tnsnames.ora

    UNIX:  /home/app/oracle/product/9.0.1/network/admin/tnsnames.ora

    在服务器中,tnsnames.ora默认是使用服务器名进行配置的,所以如果修改了机器名,则该文件同时需要修改,否则出现如下错误:

    Error:

    ORA:-12545:因目标主机和对象不存在,连接失败

    错误代码ORA-12545表示网络连接串(即tnsnames.ora文件中的HOST处)中使用的机器名和IP地址不存在,重新修改和重新连接即可。

    Oracle9i Net Service的向导工具进行配置:

    选择此选项以创建、修改、删除或重命名监听程序。监听程序是服务器中接收和响应客户机对数据库的连接请求的进程。使用配置有相同协议地址的连接描述符的客户机可以向监听程序发送连接请求。

    Oracle9i net Manager:

    可以定义简单名称来表示服务的位置,例如一个数据库,这些简单名称映射为连接描述符。他们包含服务的网络标识和位置。

    错误信息ORA-12560表示,在操作系统中找不到所定义的实例,在Oracle9i中,如果出现了此类错误,一般来说出错原因有两个,一是实例名被错误的修改,二是Oracle的服务没有正常启动。

    Oracle常见错误代码的分析与解决之二

    ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]

    产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。

    解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。

    一个报错例子如下:

    ORA-00600: internal error code, arguments: [1237], [], [], [], [], [], [], []

    相应的英文如下:

    Cause:This is a catchall internal error message for Oracle program exceptions.It indicates that a process has met a low-level,unexpected condition.Various causes of this message include:

    Time-outs(超时)

    File corruption(文件太老)

    Failed data checks in memory(内存检索失败)

    Hardware,memory,or I/O errors(硬件、内存或者磁盘错误)

    Incorrectly restored files(错误的重建文件)

    ORA-03113:end-of-file on communication channel

    产生原因:通讯不正常结束,从而导致通讯通道终止

    解决方法:1>.检查是否有服进程不正常死机,可从alert.log得知

    2>.检查sql*Net Driver是否连接到ORACLE可执行程序

    3>.检查服务器网络是否正常,如网络不通或不稳定等

    4>.检查同一个网上是否有两个同样名字的节点

    5>.检查同一个网上是否有重复的IP地址

    相应的英文如下:

    Cause:An unexpected end-of-file was processed on the communication channel.The problem could not be handled by the Net8,two task,software.This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally,or if there is a physical failure of the interprocess communication vehicle,that is,the network or server machine went down.

    Action:If this message occurs during a commection attempt,check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server.If the message occurs after a connection is well established,and the error is not due to a physical failure,check if a trace file was generated on the server at failure time.Existence of a trace file may suggest an Oracle internal error that requires the assistance of customer support.

    ORA-00942:table or view does not exist

    产生原因:这是由于装载的表或视图不存在,多半是CATEXP.SQL还没有运行,无法执行Export视图,如果CATEXP.SQL已经运行,则可能是版本错误。

    解决方法:因为Import和Export共享的一些视图是通过运行CATEXP.SQL来装载的(它们具有相同的视图),并不生成单独的CATEXP.SQL,因而造成视图与Export代码不同步,较难保持彼此之间的兼容,用户就必须建立自己的Export应用,从而避免ORA-00942的错误。

    相应的英文如下:

    Cause:The table or view entered does not exist,a synonym that is jnot allowed here was used,or a view was referenced where a table is required.Existing user tables and views can be listed by querying the data dictionary.Certain privileges may required to access the table.If an application returned this message,the table the application tried to access does not exist in the database,or the application does not have access to it.

    Action:Check each of the following:

    The spelling of the table or view name.

    That a view is not specified where a table is required

    That an existing table or view name exists.

    Contact the database administrator if the table needs to be created or if user or application priviledes are required to access the table.

    Also, if attempting to access a table or view in another schema,make certain thecorrect schema is referenced and that access to the object is granted.

    ORA-12560  协议适配器错误:

    有关ORA-12560: TNS:协议适配器错误 的问题

    ①.检查Terminal Service, 远程桌面是不是起因

    ②.环境变量set oracle_sid=需要的服务名

    ③.listener.ora, tnsnames.ora等内机器名或者IP地址是否正确

    ④.netstat –a检查端口是否被占用

    ⑤.检查注册表HKEY_LOCAL_MACHINE\Software\Oracle\Home0新增字符串USE_SHARED_SOCKET=TRUE, 重新启动服务

    ERROR:

    ORA-01031: insufficient privileges

    权限不足 修改相应权限即可。

    展开全文
  • 这个案例可以实现增加客户信息,查找指定位置的客户信息,显示所有客户信息,删除客户信息,以及退出程序的5个基本操作。下面将分为4个类来完成。 一:Customer类用于初始化客户信息,包括姓名,性别,年龄,电话...
    这个案例可以实现增加客户信息,查找指定位置的客户信息,显示所有客户信息,删除客户信息,以及退出程序的5个基本操作。下面将分为4个类来完成。
    

    一:Customer类用于初始化客户的信息,包括姓名,性别,年龄,电话,邮箱。所有属性都用Java的反射机制封装起来了。

    public class Customer {
    	private String name;//客户姓名
    	private char gender ;//客户性别
    	private int age;//客户年龄
    	private String phonenumber;//客户号码
    	private String email;//客户邮箱
    	public Customer() {//无参构造器“ALT+shift+s”
    
    	}
    	public Customer(String name, char gender, int age, String phonenumber, String email) {//有参构造器
    		this.name = name;
    		this.gender = gender;
    		this.age = age;
    		this.phonenumber = phonenumber;
    		this.email = email;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public char getGender() {
    		return gender;
    	}
    	public void setGender(char gender) {
    		this.gender = gender;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public String getPhonenumber() {
    		return phonenumber;
    	}
    	public void setPhonenumber(String phonenumber) {
    		this.phonenumber = phonenumber;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    }
    
    

    二.CustomerList这个类,是用来完成客户信息的增删改查的基本功能

    /**
     * Description 当前类为Custoemr对象的管理模块,内部使用数组管理一组Customer对象
     * @author 23147
     *
     */
    public class CustomerList {
    	private Customer[]customers;//声明Customer对象数组的名称
    	private int total=0;
    	public CustomerList(int totalCustomer) {
    		customers= new Customer[totalCustomer];//通过构造器初始化数组,告诉我们这个客户的数组有多长
    	}
    	public boolean addCustomer(Customer customer) {
    		if(total>=customers.length) {
    		return false;
    		}
    		customers[total]=customer;
    		total++;
    		return true;
    	}
    	public boolean replaceCustomer(int index,Customer cust) {
    		if(index<0||index>=total) {
    		return false;}
    		customers[index]=cust;
    		return true;
    	}
    	public boolean deleteCustomer(int index) {
    		if(index<0||index>=total) {
    		return false;}
    		for(int i=index;i<total-1;i++) {//将数组删除需要将后面的数往前移,再将最后一个数置为空值。
    			customers[i]=customers[i+1];
    		}customers[total-1]=null;
    		total--;
    		return true;
    	}
    	public Customer[] getAllCustomers() {
    		Customer[] custs=new Customer[total];//为什么这里要新增一个数组,因为customer 中的有些元素时null;
    		for (int i = 0; i < total; i++) {
    			custs[i]=customers[i];
    		}
    		return custs;
    	}
    	public  Customer getCustomer(int index) {
    		if(index<0||index>=total) {
    			return null;}
    		return customers[index];
    	}
    	public int getTotal() {
    		return total;
    		
    	}
    }
    
    

    三.CMUtility类是与用户交互的类,获取用户的输入值

    * 将不同的的功能封装为方法,就是可以直接通过调用方法使用它的功能,从而无需考虑具体的功能实现
     * @author 23147
     *
     */
    
    import java.util.Scanner;
    
    import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;
    
    public class CMUtility {
    	private static Scanner scanner =new Scanner(System.in);
    	/**
    	 * 用于界面菜单的选择,该方法读取键盘,如果用户输"‘1’"-"‘5’"的任意字符,则选择方法返回	
    	 * 
    	 */
    	public static char readMenuSelection() {
    		char c;
    		for(; ;) {
    			String str=readkeyBoard(1,false);
    			c=str.charAt(0);
    			if(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5') {
    				System.out.println("选择错误,请重新输入:");
    			} else break;
    		}return c;
    	}
    	/**
    	 * 从键盘读取一个字符,将其作为方法的返回值。
    	 */
    	public static char readChar() {
    		String str =readkeyBoard(1,false);
    		return str.charAt(0);
    	}
    	/**
    	 * 从键盘读取一个字符,并将其作为方法的返回值,如果用户不输入字符直接回车,方法将以 defaultvalue 作为返回值。
    	 * @param defaultValue
    	 * @return
    	 */
    	public static char readChar(char defaultValue) {
    		String str =readkeyBoard(1,true);
    		return (str.length()==0) ? defaultValue :str.charAt(0) ;
    	}
    	/**
    	 * 从键盘上读取一个长度不超过2位的整数,并将其作为方法的返回值。
    	 */
    	public static int readInt() {
    		int n;
    		for(; ;) {
    			String str=readkeyBoard(2,false);
    			try {
    				n=Integer.parseInt(str);
    				break;
    			}catch (NumberFormatException e) {
    				System.out.println("数字输入错误,请重新输入:");
    			}
    		}return n;
    	}
    	/**
    	 * 从键盘读取一个字符,并将其作为方法的返回值,如果用户不输入字符直接回车,方法将以 defaultvalue
    	 */
    	public static int readInt(int defaultValue) {
    		int n;
    		for(;;) {
    			String str=readkeyBoard(2,true);
    			if(str.equals("")) {
    				return defaultValue;
    			}try {
    				n=Integer.parseInt(str);
    				break;
    			}catch(NumberFormatException e) {
    				System.out.println("数字输入错误,请重新输入:");
    			}
    		}return n;
    	}
    	/**
    	 * 从键盘读取一个长度不超过limit的字符串,并将其作为方法得返回值
    	 * @param limit
    	 * @return
    	 */
    	public static String readString(int limit) {
    		return readkeyBoard(limit,false);
    	}
    	/**
    	 * 从键盘读取一个长度不超过limit的字符串,并将其作为方法得返回值,如果用户不输入而直接回车,方法将以defaultValue作为返回值
    	 * @param limit
    	 * @param defaultValue
    	 * @return
    	 */
    	public static String readString(int limit,String defaultValue) {
    		String str=readkeyBoard(limit,true);
    		return str.equals("") ? defaultValue :str;
    	}
    	/**
    	 * 用于选择确认的输入。该方法从键盘读取‘Y’或‘N’,并将其作为方法的返回值。
    	 * @return
    	 */
    	public static char readConfirmSelection() {
    		char c;
    		for(;;) {
    			String str=readkeyBoard(1,false).toUpperCase();
    			c=str.charAt(0);
    			if(c=='Y'||c=='N') {
    				break;
    			}else {
    				System.out.println("选择错误,请重新选择");
    			}
    		}return c;
    	}
    	private static String readkeyBoard(int limit,boolean blankReturn) {
    		String line="";
    		while(scanner.hasNextLine()) {
    			line=scanner.nextLine();
    			if(line.length()==0) {
    				if(blankReturn) return line;
    				else continue;
    			}
    			if(line.length()<1||line.length()>limit) {
    				System.out.println("输入长度不大于"+limit+"错误请重新输入");
    				continue;
    			}break;
    			
    		}return line;
    	}
    }
    
    

    四.CustomerView类为最终效果的展示以及调用

    public class CustomerView {
    	private CustomerList customerList = new CustomerList(10);
    	public CustomerView() {
    		Customer customer=new Customer("陈涛",'男',18,"1325555","2265");
        	customerList.addCustomer(customer);
    	}
    	
    	public void setCustomerList(CustomerList customerList) {
    		this.customerList = customerList;
    	}
    
    	/**
    	 * 显示用户管理软件界面
    	 * 
    	 */
    	public void enterMainmenu() {
    		boolean isFlag = true;
    		while (isFlag) {
    			System.out.println("-----------客户信息管理软件-----------");
    			System.out.println("            1.添加客户                       ");
    			System.out.println("            2.修改客户                       ");
    			System.out.println("            3.删除客户                       ");
    			System.out.println("            4.显示客户列表                      ");
    			System.out.println("            5.退出 \n                   ");
    			System.out.println("            	请选择(1-5)                     ");
    			char menu = CMUtility.readMenuSelection();
    			switch (menu) {
    			case '1':
    				addNewCustomer();
    				break;
    			case '2':
    				modifyCustomer();
    				break;
    			case '3':
    				deleteCustomer();
    				break;
    			case '4':
    				listAllCustomers();
    				break;
    			case '5':
    				System.out.print("确认是否退出Y/N");
    				char isExit = CMUtility.readConfirmSelection();
    				if (isExit == 'Y') {
    					isFlag = false;
    				}
    			}
    		}
    
    	}
    
    	/**
    	 * 添加用户
    	 */
    	public void addNewCustomer() {
    		System.out.println("--------添加客户--------------------");
    		System.out.println("姓名:");
    		String name=CMUtility.readString(10);
    		System.out.println("性别:");
    		char gender=CMUtility.readChar();
    		System.out.println("年龄");
    		int age=CMUtility.readInt();
    		System.out.println("电话");
    		String phonenumber=CMUtility.readString(12);
    		System.out.println("输入邮箱");
    		String email=CMUtility.readString(10);
    		Customer customer=new Customer(name, gender, age, phonenumber, email);
    		boolean isSuccess=customerList.addCustomer(customer);
    		if(isSuccess) {
    			System.out.println("------------添加完成------------");
    		}else {
    			System.out.println("--------------客户端目录已满---------");
    		}
    	}
    
    	/**
    	 * 修改用户
    	 */
    	public void modifyCustomer() {
    		System.out.println("-----------------------修改客户----------------------");
    		Customer cust;
    		int number;
    		for(;;) {
    			System.out.println("请修改指定客户(-1)退出:");
    			 number =CMUtility.readInt();
    			if(number==-1) {
    				return;
    			}
    			cust=customerList.getCustomer(number-1);
    			if(cust==null) {
    				System.out.println("无法找到指定客户");
    			}else {
    				break;
    			}
    		}
    		//修改信息
    		System.out.println("姓名("+cust.getName()+"):");
    		String name=CMUtility.readString(10,cust.getName());
    		System.out.println("性别("+cust.getGender()+"):");
    		char gender=CMUtility.readChar(cust.getGender());
    		System.out.println("年龄("+cust.getAge()+"):");
    		int age=CMUtility.readInt(cust.getAge());
    		System.out.println("电话("+cust.getPhonenumber()+"):");
    		String phonenumber=CMUtility.readString(12,cust.getPhonenumber());		
    		System.out.println("邮箱("+cust.getEmail()+"):");
    		String email=CMUtility.readString(30, cust.getEmail());
    		Customer newcust=new Customer(name, gender, age, phonenumber, email);
    		customerList.replaceCustomer(number-1, newcust);
    		boolean isReplaced=customerList.replaceCustomer(number-1, newcust);
    		if(isReplaced) {
    			System.out.println("--------------修改成功-----------------");
    		}else {
    			System.out.println("---------------修改失败--------------------");
    		}
    	}
    
    	/**
    	 * 删除用户
    	 */
    	public void deleteCustomer() {
    		int number;
    		for(;;) {
    			System.out.println("请选择指定位置删除客户编号(-1)退出");
    			number=CMUtility.readInt();
    			if(number==-1) {
    				return;
    			}
    			Customer customer=customerList.getCustomer(number-1);
    			if(customer==null) {
    				System.out.println("无法找到指定客户!");
    			}else {
    				break;
    			}}
    			//找到了指定位置的客户
    			System.out.println("确认是否删除(‘Y’,‘N’)");
    			char isdelete=CMUtility.readConfirmSelection();
    			if (isdelete=='Y') {
    				boolean deletesuccess=customerList.deleteCustomer(number-1);
    				if(deletesuccess) {
    					System.out.println("--------------删除成功----------");
    				}else {
    					System.out.println("---------刪除失敗--------------");
    				}
    			}else {
    				return;
    			}
    		}
    
    	
    
    	/**
    	 * 显示用户
    	 */
    	public void listAllCustomers() {
    		System.out.println("----------客户列表----------------");
    		int total = customerList.getTotal();
    		if (total == 0) {
    			System.out.println("没有客户记录");
    		} else {
    			System.out.println("编号\t姓名\t性别\t年龄\t电话\t邮箱");
    			Customer[] custs = customerList.getAllCustomers();
    			for (int i = 0; i < custs.length; i++) {
    				System.out.println((i + 1) + "\t" + custs[i].getName() + "\t" + custs[i].getGender() + "\t" 
    						+ custs[i].getAge() + "\t" + custs[i].getPhonenumber() + "\t" + custs[i].getEmail());
    			}
    		}
    
    		System.out.println("--------客户列表完成---------------");
    	}
    
    	public static void main(String[] args) {
    		CustomerView view = new CustomerView();
    		//view.setCustomerList(new CustomerList(10));
    		view.enterMainmenu();
    
    	}
    }
    
    

    五.程序运行的结果
    在这里插入图片描述

    案例总结:通过这个案例进一步理解了面向对象的思想,以及方法的调用,数组的多种使用效果,我个人觉得通过这个案例学习收获还是很大的。希望在学习Java语言这条路,继续加油!!!

    展开全文
  • 让用户从错误信息中得到真正的帮助?错误信息的页面应该做到以下几点:1.给普通访客友好提示。告诉他们这是怎么了,简单,再简单,不要出现技术专业词汇,同时告诉他们一些建议如何避免和解决当前的错误。2.给网站...

    大多数用户看到”该页无法显示",”服务器内部错误"等默认错误提示信息会立马关闭浏览器窗口,我们为什么不能自定义一下呢?让用户从错误信息中得到真正的帮助?
      错误信息的页面应该做到以下几点:
      1.给普通访客友好提示。告诉他们这是怎么了,简单,再简单,不要出现技术专业词汇,同时告诉他们一些建议如何避免和解决当前的错误。
      2.给网站管理员提示。比如如果程序的确运行错误后,我们需要得到详细错误信息,所以我们屏蔽错误信息的页面应该给予提示如何打开详细错误信息,而且要操作简单,容易,让管理网站的人即使不懂 .net 也能修改配置打开错误信息显示。
      3.屏蔽详细的应用程序错误信息。为了安全,我们一般隐藏应用程序的详细错误信息,因为错误信息对于某些图谋不轨的人来说是非常有利的。比如某些恶意用户会尝试 sql 注入,通过不同的参数传递,获取不同的错误信息来达到漏洞判断的目的(虽然这个问题应该在程序设计中处理,但是错误信息隐藏仍然对安全有一定的帮助)。
      4.不要让搜索引擎访问自定义的错误信息页面。这很容易理解,因为这没有必要让搜索引擎访问,比如404错误自定义页面,很多无效的url都会显示跳转到自定义页面的。我们通过定义 robots.txt 文件来实现,例如禁止收录404.html 在robots.txt 文件加入:Disallow: 404.html
      完整错误页面分析示例:
       微软 asp.net 关闭错误信息配置后,出错后默认界面如下:

     一副很专业的界面,一般用户看了会不知所错,想显示具体的错误信息感觉操作很茫然的样子,立即关闭浏览器。不懂不熟悉 .net 的管理员,也不知说错,其中描述操作复杂,茫然。。
      闪睿企业网站管理系统 是这么做的:我们对普通用户提供了建议,对网站管理员提供了建议,对技术人员提供了建议,操作都很简单,符合"简单,再简单,别让我思考"的原则

    展开全文
  • 2xx 成功3xx 重定向4xx 客户机中出现的错误5xx 服务器中出现的错误403 报错404 报错502 报错503 报错 响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。 响应码分五种类型,由它们的第一位...

    响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
    响应码分五种类型,由它们的第一位数字表示:

    1xx:信息,请求收到,继续处理
    2xx:成功,行为被成功地接受、理解和采纳
    3xx:重定向,为了完成请求,必须进一步执行的动作
    4xx:客户端错误,请求包含语法错误或者请求无法实现
    5xx:服务器错误,服务器不能实现一种明显无效的请求

    所有 HTTP 状态代码及其定义。

    代码 指示

    2xx 成功

    200 正常;请求已完成。
    201 正常;紧接 POST 命令。
    202 正常;已接受用于处理,但处理尚未完成。
    203 正常;部分信息 — 返回的信息只是一部分。
    204 正常;无响应 — 已接收请求,但不存在要回送的信息。

    3xx 重定向

    301 已移动 — 请求的数据具有新的位置且更改是永久的。
    302 已找到 — 请求的数据临时具有不同 URI。
    303 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。
    304 未修改 — 未按预期修改文档。
    305 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。
    306 未使用 — 不再使用;保留此代码以便将来使用。

    4xx 客户机中出现的错误

    400 错误请求 — 请求中有语法问题,或不能满足请求。
    401 未授权 — 未授权客户机访问数据。
    402 需要付款 — 表示计费系统已有效。
    403 禁止 — 即使有授权也不需要访问。
    404 找不到 — 服务器找不到给定的资源;文档不存在。
    407 代理认证请求 — 客户机首先必须使用代理认证自身。
    415 介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。

    5xx 服务器中出现的错误

    500 内部错误 — 因为意外情况,服务器不能完成请求。
    501 未执行 — 服务器不支持请求的工具。
    502 错误网关 — 服务器接收到来自上游服务器的无效响应。
    503 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。

    HTTP 401.1 - 未授权:登录失败
    HTTP 401.2 - 未授权:服务器配置问题导致登录失败
    HTTP 401.3 - ACL 禁止访问资源
    HTTP 401.4 - 未授权:授权被筛选器拒绝
    HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败

    HTTP 403.1 禁止访问:禁止可执行访问
    HTTP 403.2 - 禁止访问:禁止读访问
    HTTP 403.3 - 禁止访问:禁止写访问
    HTTP 403.4 - 禁止访问:要求 SSL
    HTTP 403.5 - 禁止访问:要求 SSL 128
    HTTP 403.6 - 禁止访问:IP 地址被拒绝
    HTTP 403.7 - 禁止访问:要求客户证书
    HTTP 403.8 - 禁止访问:禁止站点访问
    HTTP 403.9 - 禁止访问:连接的用户过多
    HTTP 403.10 - 禁止访问:配置无效
    HTTP 403.11 - 禁止访问:密码更改
    HTTP 403.12 - 禁止访问:映射器拒绝访问
    HTTP 403.13 - 禁止访问:客户证书已被吊销
    HTTP 403.15 - 禁止访问:客户访问许可过多
    HTTP 403.16 - 禁止访问:客户证书不可信或者无效
    HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效
    HTTP 404.1 - 无法找到 Web 站点

    HTTP 405 - 资源被禁止
    HTTP 406 - 无法接受
    HTTP 410 - 永远不可用
    HTTP 412 - 先决条件失败
    HTTP 414 - 请求 - URI 太长

    HTTP 500.100 - 内部服务器错误 - ASP 错误
    HTTP 500-11 服务器关闭
    HTTP 500-12 应用程序重新启动
    HTTP 500-13 - 服务器太忙
    HTTP 500-14 - 应用程序无效
    HTTP 500-15 - 不允许请求 global.asa
    Error 501 - 未实现
    HTTP 502 - 网关错误

    报错情况比较复杂,以下列出比较常见的几种报错内容。

    403 报错

    403报错是一个大类,403的报错基本上是权限问题,出现403报错时您需要检测权限配置问题。以下是关于403报错中具体报错的介绍。

    403.1错误是由于执行访问被禁止而造成的。若试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时便会出现此种错误。

    403.2错误是由于读取访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的HTML网页所驻留的目录仅标记为“可执行”或“脚本”权限。

    403.3错误是由于写入访问被禁止而造成的。当试图将文件上载到目录或在目录中修改文件,但该目录不允许“写”访问时就会出现此种错误。

    403.4错误是由于要求SSL而造成的。您必须在要查看的网页的地址中使用HTTPS。

    403.5错误是由于要求使用128位加密算法的Web浏览器而造成的。如果您的浏览器不支持128位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。

    403.6错误是由于IP地址被拒绝而造成的。如果服务器中有不能访问该站点的IP地址列表,并且您使用的IP地址在该列表中时您就会返回这条错误信息。

    403.7错误是因为要求客户证书。当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层(SSL)客户证书时会返回此种错误。

    403.8错误是由于禁止站点访问而造成的。若服务器中有不能访问该站点的DNS名称列表,而您使用的DNS名称在列表中时就会返回此种信息。请注意区别403.6与403.8错误。

    403.9错误是由于连接的用户过多而造成的,由于Web服务器很忙,因通讯量过多而无法处理请求时便会返回这条错误。

    403.10错误是由于无效配置而导致的错误。当试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时便会返回这条错误。

    403.11错误是由于密码更改而导致无权查看页面。

    403.12错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书,而客户证书映射没有权限访问该Web站点时就会返回映射器拒绝访问的错误。

    403.13错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销,或者无法确定证书是否已吊销造成的。

    403.14错误Web服务器被配置为不列出此目录的内容,拒绝目录列表。

    403.15错误是由于客户访问许可过多而造成的。当服务器超出其客户访问许可限制时会返回此条错误。

    403.16错误是由于客户证书不可信或者无效而造成的。

    403.17错误是由于客户证书已经到期或者尚未生效而造成的。

    404 报错

    404报错主要是页面显示问题或者页面的链接有问题,意味着链接指向的网页不存在,即原始网页的URL失效。当 Web服务器接到类似请求时,会返回一个404状态码,告诉浏览器已请求的资源并不存在。导致这个错误的原因一般有以下几种情况。

    无法在所请求的端口上访问Web站点。

    Web服务扩展锁定策略阻止本请求。

    MIME映射策略阻止本请求。

    网站更新改版,但某些局部板块沿用原来的模块,而原有的模块调用的文件已经被删除或转移了路径。

    跟踪访问的各类脚码或CSS文件无效但调用代码依然存在。

    某个目录被直接删除(导致一段时间该目录的文件在被爬行时全部报“404 Not Found”错误)。

    网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问。

    502 报错

    当测试访问报错为502 Bad Gateway,这是Web程序配置异常导致的。建议结合Web访问日志,检测一下Web程序配置的参数设置是否有异常。

    503 报错

    503报错是一种HTTP状态码,与404同属一种网页状态出错码。两者的区别是:前者是服务器出错的一种返回状态,后者是网页程序没有相关结果后返回的一种状态。503报错产生的原因有可能是以下几种情况。

    网络管理员可能关闭应用程序池以执行维护。

    当请求到达时应用程序池队列已满。

    应用程序池标识没有使用预定义账户:网络服务。而自己配置了标识,但是配置的这个用户不属于IIS_WPG组。

    应用程序池启用了CPU监视,并且设置了CPU使用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面 (.asp、.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭。

    应用程序池的性能选项卡的请求队列限制所填的数值太小,默认为1000。

    某个目录直接删除(导致一段时间该目录的文件在被爬行时全部报404 Not Found错误)。

    网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问。

    该站点正在被攻击。对于最新型的攻击,其实是DDoS的一种派生,原理在于找数千个IP,同时向服务器的Apache发出请求,然后立即断开,让Apache处于等待状态,致使Apache线程全部被填满,致使服务器死机。因此,为了保证大多数客户的利益,我们给每个空间,作出了每19秒64个PHP请求的限制。一般的图片请求和HTML请求不包括在内。

    该程序占用的PHP线程过多,有的程序没有进行好优化处理,一个点击即可产生数个,甚至数十个PHP线程。这样的话,几个点击就可以把该时段的64个PHP线程全部填满了。因此出现503错误。建议优化一下程序,尽量少用require(请求)等语句。

    服务器租用认准驰网,24小时售后为您保驾护航!

    展开全文
  • 不过,如果也能引发你的一些思考,我想目的就达到了,在这个信息投喂的时代,我们不要成为被动的接收者,而是要尽量主宰自己的思想。 另外,经常读我文章的人,都具有一定认知水平,因此我忽略了一些显而易见的背景...
  • 解决远程连接mysql错误1130代码的方法今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到,错误代码是1130,ERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server猜想是无法...
  • 做实施项目,SD模块的静态主数据主要是客户主数据和价格主数据,这篇主要记录项目过程中关于客户主数据遇到的一些问题和看法。业务在HANA系统里,客户主数据和供应商主数据的创建、修改、查看都是用的T CODE BP。...
  • **404这个状态码是很多Seoer分析网站日志时常见到的,那么404错误是什么意思呢?它表示客户端请求的网页不存在,因此返回** 404代码;服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码?如果出现这种...
  • 目录 一些常见状态码(控制台打印报错): HTTP 错误 401.x HTTP 错误 403.x HTTP 错误 4xx 常见的 HTTP 状态代码及其原因 ...FTP 错误 5xx -永久性否定的完成答复 ...不作修改,客户程序就无法重复此...
  • 我们在用电脑,会经常使用浏览器,不少人经常在浏览网页时候突然跳出一个提示,上面显示“找不到服器”或“dns错误”。下面,给大家分享找不到服务器或dns错误的解决经验。1、病毒所致:如果你电脑中了病毒,让你的...
  • 答:没有可能自己丢失,只可能是误删除了指纹信息,只能重新登录指纹。2.在预处理时时间过长。答:由于用户单位的人员多,软件设置的班次乱等因素造成;可以建议用户分部门进行统计。3.安装软件时提示解压缩安装文件...
  • Mysql错误1452-无法添加或更新子行:外键约束失败我有一个奇怪的问题。 我试图添加一个外键引用另一个表,但由于某种原因失败。 由于我对MySQL的知识有限,唯一可能会怀疑的是在引用我想引用的表上的另一个表上有一...
  • 2008-10-03你下载的之后出了一点问题于是损坏了也有个...我采取的方式很简单:在没有解压完(提示错误的状况下)拷贝文件到其他目录,等解压完成,OK,文件仍然好用,这个办法必须是有针对性地,还是枚举一下网络的做...
  • http错误代码都是什么意思?秩名发表于 2019-04-11 09:43次浏览小编在访问网页的时候...引导并告诉浏览者改网页是哪里出了问题。下面是http常见错误具体含义:HTTP400-请求无效HTTP401.1-未授权:登录失败HTTP401.2...
  • 但这里并不是说要对错误信息长篇大论,因为本来Exception的类名就能够反映错误的原因,因此只需要用一到两句话描述即可。 try { new Long("xyz"); } catch (NumberFormatException e) { log.error(e); } ...
  • 这时候你需要联系仓库或者快递查询没有物流信息的原因,一般有以下这两种情况: 1、快递单号填错了 如果是快递单号填错了,可以在24小时内于系统之中更新单号,覆盖错误单号。 找到原因后第一时间告知买家的确已经...
  • 第二个,基于错误预算来做告警,也就是说我们只关注对稳定性造成影响的告警,比如 我们前面提到的,当单次问题消耗的错误预算达到 20% 或 30% 等某一阈值时,就意味着问题非常严重了,这种告警信息一旦收到,就要...
  • 因为变更前的收件信息是买家确认的,故此信息或多或少与买家是有关联的,故此件在变更前地址签收的,且收件信息错误本身是买家责任,故交易支持打款卖家。 因为变更前的收件信息是买家确认的,故此可判断收件人与...
  • 2021年最新版高级售后客户服务处理专员 自动化退款策略有哪些维度来做策略的配置? 准确性 主张相对方承担 质量问题 只限普通订单,付款后48小时内依然未产生第一条揽收记录 只限定制商品订单,24小时内未产生第一条...
  • 比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。下面的例子显示出如何使用MySQL客户安装新用户。这些例子假定权限根据以前的章节描述的缺省被安装。这意味着为了改变,你必须在MySQL正在运行同一...
  • 第二天,吉拉德跟客户打电话时,客户告诉他:“我已经从别的地方买了,他们夸我的孩子很棒!” 一个人如果缺乏同理心,则不会站在别人的角度去思考,一切围绕着自己的利益转圈,通常就会表现为自以为是、自私自利、...
  • 点击上方蓝字关注我们客户之声(Voice of the Customer,简称VoC)是客户体验时代不可或缺的组成部分,也是谈论不休的话题之一。对于那些致力于“以客户为中心”的企业来说...
  • 这篇文章从数据分析的几个阶段,总结了14个我们可能会犯的一些错误,以及如何避免。数据获取阶段 在数据采集/获取阶段,容易犯的错误:NO.1 采样偏差在数据采集的时候,如果不能获取到总体的数...
  • 这就需要错误源能通过某种方式,把适当的信息传递给某个接收者--该接收者将知道如何正确处理这个问题。概念基本异常捕获异常创建自定义异常异常说明捕获所有异常Java标准异常使用finally进行清理异常的限制构造器...
  • 解决mysql 10048 错误

    2021-01-21 08:04:06
    Error: Can't connect to MySQL server on 'localhost' (10048)以上错误分几种情况说一下(首先您要确保您的服务器及服务器环境是正常的,装一个新论坛试一下就知道了):1. 如果您是虚拟空间,出现以上错误,有可能是限制...
  • 目录前言MODBUS应用协议应答方式无应答正常应答RTU模式TCP模式异常应答RTU模式TCP模式 ...服务器在应答时间必须在客户机规定的时间之内,否则客户机会采用超时处理,回应的格式也要遵循通信协议的规定。 应答
  • PHP-模拟403错误页面

    2021-03-22 20:58:46
    PHP-模拟403错误页面我知道您可以...默认情况下,仅发送标题会显示白页,但我记得有一阵子回读,您可以使用客户错误页面。 有人知道吗12个解决方案56 votes发送标头后只需回显您的内容即可。header('HTTP/1.0 403 ...
  • 同时,主动把慢 SQL 调优后,客户抱怨系统缓慢的投诉,也下降了 35%. 也许,朋友有疑问,“ 我怎么才能做到这么头头是道呢?” 其实也不难。这里头考究的是知识体系。即你对整个行业在做什么,有充分的了解和把握。...
  • 对于所有企业来说,数字化转型都是新鲜事物,都在摸着石头过河,再加上数字化转型本身是一个极其复杂的系统工程,多以企业在数字化转型的过程中难免会遇到各种问题,甚至犯各种错误,有些错误的代价非常大,企业要尽...
  • [网络安全] 二.Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息最近开始学习网络安全和系统安全,接触到了很多新术语、新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广、好杂,但同时也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,624
精华内容 52,249
关键字:

告诉客户错误信息