常见HTTP状态码
200(成功)、301(永久移动到新网址)、302(临时移动)、403(服务器禁止请求)、404(找不到请求网页)、500(服务器内部错误)、503(服务不可用)
大体可分为下面几类:
- 1xx:指示信息--表示请求已接收,继续处理
- 2xx:成功--表示请求已被成功接收、理解、接受
- 3xx:重定向--要完成请求必须进行更进一步的操作
- 4xx:客户端错误--请求有语法错误或请求无法实现
- 5xx:服务器端错误--服务器未能实现合法的请求
常见状态码描述
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
301 Moved Permanently 请求的网页已永久移动到新位置
302 Found 临时性重定向
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI
304 Not Modified 自从上次请求后,请求的网页未修改过
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求
401 Unauthorized 请求未授权
403 Forbidden 禁止访问
404 Not Found 找不到如何与 URI 相匹配的资源
500 Internal Server Error 最常见的服务器端错误
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)
常见HTTP请求方法
HTTP/1.0定义了三种请求方法: GET,POST 和 HEAD 方法。
HTTP/1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE 和 CONNECT 方法。
GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
GET与POST方法的区别
- GET重点在从服务器上获取资源,POST重点在向服务器发送数据;
- GET传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如
http://127.0.0.1/Test/login.action?name=admin&password=admin
,这个过程用户是可见的;POST传输数据通过Http的POST机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的; - GET传输的数据量小,因为受URL长度限制,但效率较高;POST可以传输大量数据,所以上传文件时只能用POST方式;
- GET是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;POST较GET安全性较高;
- GET方式只能支持ASCII字符,向服务器传的中文字符可能会乱码;POST支持标准字符集,可以正确传递中文字符
浏览器输入URL的时候发生了什么?(主要过程:网络通信和页面渲染)
- 当我们在浏览器上敲入一个url时, 浏览器首先接收该url的域名并分析是否符合URL标准,不符合的话,会交给搜索引擎
- 如果是正确的URL,那么浏览器会检索该主机的HOST列表,如果有该域名的IP的话,就万事大吉。否则发送域名给最近的DNS进行解析。DNS接收该域名后,先请求本地服务器缓存,如果本地服务器也没有该域名的IP的话,那么由本地服务器依次向上请求,根服务器,com服务器,百度服务器,直到找到http://baidu.com的IP地址
- DNS将域名对应的IP地址返回给浏览器
- 应用层浏览器客户端向IP地址所对应的的服务器发送请求数据(请求行为:
GET http://www.baidu.com/ HTTP/1.1
) - 传输层TCP传输请求报文,“三次握手”建立TCP连接,一般TCP连接的端口号是80
- 网络层IP协议查询MAC地址,IP协议的作用是把TCP分割好的各种数据包传送给接收方,而要保证报文确实能传到接收方还需要接收方的MAC地址,也就是物理地址。ARP协议可以将IP地址解析成对应的MAC地址
- 在找到对方的MAC地址后,就将数据发送到数据链路层传输。这时,客户端发送请求的阶段结束
- 接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在传输层通过TCP协议将分段的数据包重新组成原来的HTTP请求报文。
- 服务器响应请求,发回网页内容(响应状态行为:
HTTP/1.1 200 OK
) - 客户端浏览器获取网页内容,解析HTML并进行渲染来显示在浏览器上。
网友评论