web基础
web的结构组件
- 代理:代理位于服务器与浏览器之间,接收所有的HTTP请求,并将这些请求转发给服务器,也可能是修改之后再进行转发,通常代理可以对请求和相应进行过滤,比如在企业里面对下载的应用程序进行病毒的检测
- HTTP缓存:是一种特殊的HTTP代理服务器,可以将经过代理传送的文档复制保存下来。下一个请求同一文档的客户端,就可以享受缓存的私有副本所提供的服务,客户端从附近的缓存下载文档会比从服务器端快
- 网关,隧道,agent代理
URL的组件,语法
协议://[用户名:密码@]主机名.域名.顶级域名[[:端口号]/目录/文件名.文件后缀?参数=值#片段]
注:[]代表可加可不加
- 用户名,密码:两者使用’:"来分隔,与其他的部分使用@分隔,许多服务器比如FTP,要使用用户名和密码才能登录,FTP如果没有使用密码,则会使用匿名用户登录
- #后面加的片段是当一个文档很大而我只想获得这个文档里面的某些章节的时候使用,但是其实HTTP服务器通常只能处理整个对象,而不是对象的片段,浏览器从服务器获得完整的资源之后,会根据片段来显示我们感兴趣的内容
HTTP报文流
不管是请求报文还是响应报文,都会向下游流动
HTTP方法
- GET是最常用的方法,通常用于请求服务器发送资源
- POST方法,它用来支持HTML的表单,表单中填好的数据会发送给服务器,然后服务器再发送到指定的地方
- TRACE方法,客户端发送一个请求的时候,这个请求可能会闯过防火墙,经过网关等等,TRACE方法允许客户端查看当请求到达服务端时请求变成生命样子了
- DELETE方法,请求服务器删除磁盘中对应的文件,但是客户端应用程序无法保证删除操作一定会被执行。因为HTTP允许服务端在不通知客户端的情况下撤销请求。
- 其他扩展方法
HTTP首部
内容较多,参考HTTP权威指南
HTTP连接管理
tcp的可靠数据通道
TCP为HTTP提供了一条稳定的可靠的比特传输通道,从TCP连接一端连入的字节,会从另一端以原有的顺序,正确地传送出来。
TCP流是分段的
TCP是面向数据报的协议,udp是面向数据报的协议,HTTP要传送一条数据时,会将报文的内容通过一条打开的TCP按顺序进行传输,TCP在收到数据流之后,会将数据流砍成被称作段的小数据块,并且封装在IP分组里面,进行传输