【网络】HTTP知识点(2)

1.HEAD请求方法

方法与GET方法类似,也是请求从服务器获取资源,服务器的处理机制也是一样的,但服务器不会返回请求的实体数据,只会传回响应头,也就是资源的“元信息”。

HEAD方法可以看做是GET方法的一个“简化版”或者“轻量版”。因为它的响应头与GET完全相同,所以可以用在很多并不真正需要资源的场合,避免传输body数据的浪费。
例子:检查服务器是否存在某个文件。使用HEAD方法
2.
POST也是一个经常用到的请求方法,使用频率应该是仅次于GET,应用的场景也非常多,只要向服务器发
送数据,用的大多数都是POST。
可以这样理解:POST新增或提交   PUT替换或更新
3.
“安全”是指请求方法不会“破坏”服务器上的资源,即不会对服务器上的资源造成实质的修改
例如说 GET/HEAD就是安全的  PUT/POST/DELETE会对服务器资源进行操作就不是安全的
4.
幂等:执行多次相同的操作之后 结果应该是相同的。即多次”幂“之后结果相等。
显而易见 GET HEAD肯定是安全又幂等的。DELETE对于重复删除一个不存在的文件也是幂等的。
POST是新增或提交 不是幂等
PUT是替换或更新 替换或更新后就不会再变了 所以幂等。
5.

 

 

主机名可以是域名或者IP地址形式的 必须要有。
但是端口号不一定需要。可以根据协议来确定默认的端口号进行确认:

(1,HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)

(2,HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp  443/udp

(3,HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098

(4,SOCKS代理协议服务器常用端口号:1080

(5,FTP(文件传输)协议代理服务器常用端口号:21

(6,Telnet(远程登录)协议代理服务器常用端口号:23

查询参数从一个   ?  开始 是一个个的Key-Value值。

6.

如果在path或者query里面出现了”&@?“等限定字符怎么办

直接把非ASCII码或特殊字符转换成十六进制字节值,然后前面再加上一个“%”   比如说   空格   就是”%20“
那么中文、日文等汉字通常先使用UTF-8进行编码然后进行上面所说的进行转义     银河”会被转义成“%E9%93%B6%E6%B2%B3”。

 7.

状态码分析;

1xx:表示到达协议中间状态,需要后续操作

2xx:成功,报文被接受和正确处理

    200 OK一切正常。

    204 Not content 也是成功 但是返回的响应报文没有body数据

    206 Partial Content 在HTTP分块下载时用到,body部分是资源的一部分。

3xx:重定向,资源位置发生变化,需要重新发送报文

    301 永久重定向

    302 临时重定向

    304 Not modified  重定向到缓存页面

4xx:客户端错误,请求报文有问题,服务器无法处理

    400 Bad Request  客户端错误通用码

    403 Frorbidden 服务器禁止访问

    404 Not found 服务器没找到资源

    405 Method Not Allowed:不允许使用某些方法操作资源,例如不允许POST只能GET;

    406 Not Acceptable:资源无法满足客户端请求的条件,例如请求中文但只有英文;

    408 Request Timeout:请求超时,服务器等待了过长的时间;
    409 Conflict:多个请求发生了冲突,可以理解为多线程并发时的竞态;
    413 Request Entity Too Large:请求报文里的body太大;
    414 Request-URI Too Long:请求行里的URI太大;
    429 Too Many Requests:客户端发送了太多的请求,通常是由于服务器的限连策略;
    431 Request Header Fields Too Large:请求头某个字段或总体太大;
 

5xx:服务器错误,服务器处理请求时内部发生错误

    500 Internal server error 服务器错误通用码

    501 Not implmented 还没开放

    502 Bad Gateway  服务器作为网关返回的错误码

    503 Service Unavilable 服务器目前忙 访问不到

 

8.HTTP的特点

灵活可扩展

可靠传输(背靠TCP/IP)

应用层协议

请求应答

无状态

9.请求——应答模式导致了HTTP的队头阻塞

对头阻塞:

由于HTTP是 一放一接 的模式,不等不形成一个串行队列,必须前面的请求应答完 才能处理后面的请求

10.

MIME type表示body的数据类型 用type/subtype表示

 

 

Encoding type是表示以何种压缩方法进行压缩的

 

 11.

针对于上面2种type 在响应头字段和请求头字段有accept和content字段

accept请求头字段:表示希望接受什么类型数据

content响应头字段:表示实际发送了什么类型数据

 

 12.

语言类型的分隔符是-

比如说 en-US en-GB  zh-CN等等

13.

Accept-Languange可接受的语言类型

Content-Language实际发送的语言类型

Accept-Charset可接受的字符集(GBK ,UTF-8)

Content-Charset实际发送使用的字符集

 

 14.

内容协商(优先级)

 

 15.

 

 16.

传送大文件的方式:用压缩算法(gzip等)、分块传输

Transfer-Encoding:chunked(块)

这个字段和content-length不能同时出现 因为无法计算长度

17、

短链接 由于需要大量重复的TCP握手挥手过程,所以效率低下

长连接 由字段Connection:Keep-alive保持tcp的链接  在HTPP/1.1后默认启动长连接

由于大量长连接会导致服务器资源枯竭,所以Nginx有两个机制:

keepalive_timeout一个链接的最长链接时间 过时则断开

keepalive_requests一个链接的最多需求,比如请求超过100次 断开连接

18.

对头阻塞的解决办法:

并发连接,对一个域名同时并发多个连接

域名分片

19.

301永久重定向

302临时重定向

在响应报文中如果由Location字段 则会浏览器自动跳转到location字段后面的url

url可以是绝对路径的 也可以是相对的

分析腾讯的网页跳转

 

 

 

 

 

 

使用重定向时的注意事项:

注意不要出现 循环跳转A->B->A

每次跳转都需要一个应答 浪费性能

20.

cookie是请求报文里的

set-cookie是响应报文里的

可以在set-cookie加入cookie的过期时间

expires 过期时间 绝对的时间点

max-age 最大相对时间过去 是相对的 响应时刻+最大时间

domain 域名  可以在输入的url判断是否发送cookie

path 路径

属性httponly   只允许通过http协议访问cookie

属性secure  只允许https访问

 

posted @ 2021-01-26 20:32  枫叶像思念  阅读(168)  评论(0编辑  收藏  举报