1.URL
URL是一种统一资源标识符,HTTP用他来传输数据和建立链接。
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
例如这个URL,分为以下部分:
协议部分:http: 以//为分隔符域名部分:www.aspxfans.com
端口部分:8080(域名和端口中间的:作为分隔符)
虚拟目录部分:从域名后的第一个/到最后一个/ 在这里是/news/
文件名部分: index.asp
参数部分:?到#的部分
锚部分:从#到最后 在这里是name,是不发给服务器的数据
2.HTTP常见的状态码有哪些
1xx 提示信息,表示中间状态
2xx 成功 如200、204、206
3xx 重定向 资源的位置出现了变动,客户端需要重新请求 如301、302、304
4xx 客户端错误(请求报文错误,服务器无法处理)400、403、404
5xx 服务器错误 500、501、502、503
3.Http常见字段
host 客户端指定域名
content-length 服务器表明回应的数据长度
connection 客户端要求服务器使用http长链接机制 如:connection:Keep-Alive,此时为长链接
Connect-Type 服务器回应客户端是,表明数据的类型 客户端请求的时候,可以用Accept字段表明自己可以接受哪些类型
Connect-Encoding 表明服务器返回的数据使用了什么压缩方式,同样客户端可以用Accept-Encoding表明自己接受的压缩方式
4.Get和Post的区别
根据RFC规范:
GET的语义是从服务器获取指定的资源,GET请求的参数一般放在URL中,所以GET请求的参数只支持ASCII字符,而且浏览器会对URL的长度有限制。
而POST的语义是根据请求负荷(报文body)对指定的资源进行处理。POST请求携带数据的位置一般在报文body中,body可以是任何形式的数据,而且浏览器不会对body大小限制。
GET是安全且幂等的,因为是只读操作。所以我们可以对GET请求的数据做缓存,而且可以缓存到浏览器里,省的浏览器再发请求,也可以缓存在代理里,而且浏览器中的GET请求可以缓存为书签。
POST不安全,因为会修改服务器上的资源。它也不是幂等的,因为多次相同的请求也会创建多个资源。所以浏览器一般不缓存POST请求。
综上:
GET 的语义是请求获取指定的资源。GET ⽅法是安全、幂等、可被缓存的。
POST 的语义是根据请求负荷(报⽂主体)对指定的资源做出处理,具体的处理⽅式视资源类型⽽不同。POST 不安全,不幂等,(⼤部分实现)不可缓存。
但是实际过程中,开发者不⼀定会按照 RFC 规范


562

被折叠的 条评论
为什么被折叠?



