文档章节

深入浅出,http过程

刘小米
 刘小米
发布于 2014/06/05 23:42
字数 951
阅读 64
收藏 0
点赞 1
评论 0

因为有个工程要用到http协议,复习了下相关知识,整理出来,相信看完后就可以了解这个过程~

1.    几个重要概念

            本节所讲会在第二节中用到。

            1)URL(统一资源定位符):每个文档在万维网范围内有唯一的标识符

                    格式:<协议>://<主机>:<端口>/<路径>,不区分大小写

                                 协议有:ftp、http等;<主机>是存放资源的主机在因特网中的域名,也可以是IP地址;

                                <端口>和<路径>有时候可以省略

            2)万维网(WWW):以Client/Server方式工作。浏览器是client,万维网文档驻留的计算机是server(万维网服务器)

                    工作流程:a. Web用户用浏览器(url)与web服务器建立连接,发出浏览器请求;

                                     b. Web服务器把url转换成文件 路径,返回信息给浏览器;

                                     c. 通信完成,关闭连接

            3)TCP: 是在IP层之上实现的可靠的数据传输协议。TCP报文包含的几个重要的字段:

                  源端口和目的端口

                  序号字段:TCP连接中的数据流的每个字节都占一个序号。序号字段是本报文的第一个字节的序号。

                  确认号字段:指期望收到的下一个报文的第一个字节的序号。如确认号为N,则N-1为止的数据都已收到

                  确认位 ACK:仅当ACK=1时,确认号字段才有效。

                  同步位 SYN:SYN=1,ACK=0表示这是一个连接请求报文; SYN=1,ACK=1 表示同意建立连接;

            4)DNS(域名解析系统):在internet中域名与IP地址一 一对应,域名便于人记忆,但机器之间只互相认识IP。

                    域名与IP地址之间的转换工作是域名解析。专门进行域名解析的服务器就是DNS

2.    http操作过程(本文核心)

        http协议是面向事务的应用层协议,规定了浏览器与服务器之间的请求和响应格式规则,是万维网上可靠的通信协议。

        http使用TCP连接进行可靠的传输,默认端口号为80.

        过程:  1)浏览器分析超链接指向页面的url http://www.xidian.edu.cn,解析到所要使用的协议为http

                    2)浏览器向DNS(域名解析系统)请求www.xidian.edu.cn 的IP地址

                    3)DNS解析出西电服务器的IP地址

                    4)浏览器与服务器建立TCP连接(默认端口号80)

                    5)浏览器发出http请求:GET/chinese/index.htm

                    6)服务器通过http响应把文件index.htm发送给浏览器

                    7)TCP连接释放

                    8)浏览器将文件index.htm进行解析,将web页展示给用户

        TCP的 三次握手协议:是用于建立客户机与服务器之间的连接的

                    1)客户端TCP向服务器TCP发送一个连接请求报文段不含应用层数据,SYN=1,

                          客户机随机选择一个起始序号 seq=x(不携带数据,消耗一个序号)

                    2)服务器TCP收到连接请求报文段,同意建立连接,就向客户机发送确认,SYN=1, ACK=1,

                          确认号字段seq=x+1; 并向服务器随机产生起始序号seq=y(确认报文不携带数据,消耗一个序号)

                          并为该TCP连接分配TCP缓存和变量。

                    3)客户机收到确认报文段后,向服务器给出确认。也要给该连接分配缓存和变量。ACK=1, 序号字段 x+1,

                          确认号字段为y+1。(这一步也可以携带客户机对服务器的请求数据)


3.    http报文格式

© 著作权归作者所有

共有 人打赏支持
刘小米
粉丝 56
博文 58
码字总数 40988
作品 0
西安
其他
深入浅出Node.js_Index

深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四...

陶邦仁
2016/01/07
416
0
深入浅出MyBatis_Index

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/22
932
0
【Android学习】使用聚合数据的接口进行的RxAndroid学习

最近学习RxJava,一直在看大神的文章。 RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java V......

夜晚晚
2016/11/30
155
0
【深入浅出MyBatis系列八】SQL自动生成插件

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/25
818
1
【深入浅出MyBatis系列七】分页插件

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/24
1K
1
【深入浅出MyBatis系列一】MyBatis入门

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/22
4.1K
0
【深入浅出Node.js系列十六】grunt让Nodejs规范起来

深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四...

陶邦仁
2016/01/21
128
0
【深入浅出Node.js系列十】一个简单的静态文件合并服务器

深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四...

陶邦仁
2016/01/18
229
0
【深入浅出MyBatis系列四】强大的动态SQL

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/22
1K
0
【深入浅出MyBatis系列九】改造Cache插件

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/25
624
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
30分钟前
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部