HTTP协议学习・笔记一

http版本0.9版本只能文本  1991   TCP 70年代末期

                      1.0 版本:主流 支持多媒体数据处理 keep-alive 保持连接

                1.1 版本:与1.0区别持久连接 更多的请求方法 精细的缓存控制,持久连接

smtp:出现的更早只能传输文本

 

http工作模式:对服务器资源的操作

https事务:请求==响应   各种类型的请求标示就是各种方法:如各类请求方法 GET PUT HEAD POST DELETE

http请求报文: request

报文格式<method>方法名称   <request-URL> 请求资源 可以相对路径或者绝对路径  <version>http协议版本

<headers>请求首部

<status>:状态码

<reason-phrase>: 原因短语

<entiy-bady>:主体部分一般get方法是空的响应报文里面就有主体

OSI下面四层都是通过内核处理的,IP MAC 程序是不可见的

 

 

首部格式namevalue

Content-typeimages/gif

首部分三种:

         通用首部:请求和响应都可以使用

Connection:定义C S之间关于请求 响应的有关选项

Via:显示了报文经过的中间节点

Cache-Contral:缓存指示

pragma

         请求首部:只有请求可用

Client_IP:

Host:请求的主机名和端口号

Referer:跳转地址

User-Agent:用户代理 使用什么工具发出的请求

Accept首部:用户表明客户自己更倾向使用的方式

         响应首部:只有响应可用

实体首部:用于指定实体属性

扩展首部 非标准首部,可能有程序开发者创建的 例如X-Forward-For

 

 

http响应报文 response

<version> <status><reason-phrase>

<headers>

 

<entity-body>

 

 

响应报文状态码

1xx  信息性状态码 无多大意义 

2xx  成功状态码 200OK    201created

3xx  重定向状态码 

301movedpermanently 永久重定向

302Found 临时重定向

   304Not modified 用户第二次请求资源表示资源没变化 继续使用缓存

4xx  错误状态码 客户端错误:

     403Forbidden 请求被拒绝 

     404 Not Found 服务器无法找到请求的URL

     405Method Not Allowed 不应许使用此方法请求响应的URL

5xx  服务器类的错误

         500  服务器内部错误

          502 bad GATEWAY 代理服务器从上游收到一条伪响应:

    503 serveice unavailable:服务器此时无法提供服务  但是表示将来可能可用

http一次完整的请求流程1.名称解析 DNS解析  2.三次握手   3.请求资源   4.四次断开

http协议:是一种无状态协议:一次事务结束后,无论接下来几次请求都是重新连接 服务器并不知道客户端来自同一个 连接即断开的属性

 

常用请求方法:

GET (请求获取一个资源,需要服务器发送)

HEAD(与get相似 但不需要服务器发送资源仅传回响应首部

以上两种是安全方法:(只请求不修改资源)

 

POST (支持html表单提交,表单中有用户填入的数据,这些数据会发送服务器端,存储或者给处理程序使用 )

PUT(向服务器写入文档,发布系统,例如上传文件之网盘)

DELETE:(请求删除指定url OPTIONS(探测服务器对某资源支持的请求方法)

TRACE :( 检测代理服务器 跟踪请求要经过的防火墙代理或网关等)

扩展方法:LOCK MKCOL COPY MOVE

 

加速方式:

1.多线程,并行请求

2.三次连接请求后不断开,持久连接, 保持连接 弊端:占用服务器资源,超时并断开

10010秒断开方式    凡事不断折中便能得到最好的效果

base64 将二进制数据编码成文本发送,并能够让接受方还原来的格式

网络编程:

C语言只有数据结构并没有对象:

待续未完……


你可能感兴趣的:(http协议,网络编程)