HTTP
错误代码具体含义
HTTP状态码分类 分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
301:代表永久性转移重定向
搜索引擎在抓取新内容的同时也将旧的网址替换成新的网址,客户端(搜索引擎或浏览器)会保留重定向后的网站,在下次访问时不必请求location内的网址;通常用于对网站的永久迁移
302:暂时重定向
搜索引擎抓取新内容而且会保留旧的地址,用于网站的临时维护,可能会有302劫持的问题
400:Bad Request
客户端请求的语法错误,服务器无法理解
404:Not Found
服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
500:服务器内部错误
可能是编程语言语法错误后web脚本错误
503:服务器由于维护或负载过重无法进行响应
站点并发请求量过多;带宽超限。
例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。
请求报文和响应报文
请求报文格式:
① 请求行:
方法(get/post/head/delete)
URL
HTTP版本
②首部:
accept-language
host
connection
…
③实体体:
get时为空,post时有内容
get和post的区别:
1.get将请求的数据直接加在URL中,用?和链接分割,用&连接不同的参数;post方法URL不变,需要的属性写在实体体中
2.get方法主要用来获取内容,是安全的和幂等的,可以存为书签,可被浏览器缓存;post方法主要用来提交内容,不可以被浏览器缓存且不可存为书签
响应报文格式:
①状态行:
HTTP版本
状态码
描述
②首部
③实体体
HTTP版本区别:
HTTP1.0:非持续连接,一个连接只能传送一个内容
HTTP1.1:持续连接,一个连接可传送多个内容
相关问题
close_wait状态:
四次挥手时,作为被动关闭方,在收到主动关闭方发来的fin后发送ack到向主动方发送fin这段时间被称为close wait状态。
close_wait的危害在于,在一个进程上打开的文件描述符超过一定数量,(在linux上默认是1024),新来的socket连接就无法建立了,因为每个socket连接也算是一个文件描述符。
cookie和session的关系:
HTTP是无连接的,即上一次连接和这一次连接没有关系,为保持持续性的对话,使用cookie,允许站点对用户进行追踪。session则是借助cookie在服务器端上建立,用来标识客户状态。
cookie是在客户端上保存,session则是在服务器端上保存
HTTPS:
在HTTP和tcp间增加SSL层用来加密,用对称加密方法来加密内容部分,用非对称加密来验证证书。
过程:
①创建tcp连接
②A向B发HELLO
③B用证书回复
④A验证是否是真实的内容发送方,A产生主密钥(用于SSL会话,类似于随机数),用B的公钥加密主密钥,发送给B
⑤B收到后用私钥解密,得到主密钥
⑥主密钥被切片成两个加密会话的密钥和两个MAC密钥
⑦使用加密交换数据