すべてのページのロードにURLを入力し、何が起こったのか?(インタビューの質問をテストソフトウェア)

最初の公開に登場しません記事:ソフトウェアテストER

 

すべてのページのロードにURLを入力し、何が起こったのか?これは、ソフトウェアテストのインタビューの質問で、実際に多くの知識質問がされてあります。

スリーウェイハンドシェイクのTCPに関する質問1話してください

質問2 TCPとHTTPの違いは何ですか:OKだから、より良い心の中で、次のインタビューでこれを置きますか?

質問3 HTTPとHTTPSの違いは?

質問4 HTTPリクエストメソッド?

質問5つの共通の戻りステータスコードは何?意味は何ですか?
最初に私にはちょうどこれらの問題を理解するために、インタビューを扱うが、自身がよく理解されないことが判明。そして、前と後に通常の半ばバグおよびテスト・インタフェース内に配置されるテストニーズはあなたがその知識を理解する必要があります。
私はこの知識についての質問のこの種を使用して、理解を深め、私たちはあなたを助けるために願っています。


全体的なプロセスは以下に要約されたページのロードにURLを入力します。

1、ブラウザのアドレスバー、URLを入力し、Enterを押します。

2、現在のURLのブラウザのキャッシュDNSルック記録。

3、DNS解析URL IPに対応します。

4、IPに基づいてTCPコネクション(スリーウェイハンドシェイク)を確立。

5、HTTPリクエストを開始しました。

6、サーバは要求を処理し、ブラウザがHTTPレスポンスを受信します。

7、ページのレンダリングには、DOMツリーを構築します。

8は、TCPコネクション(4波)を閉じます。


再度詳細に説明

まず、入力https://www.baidu.com/の例ドメインは3つの部分で構成さ:プロトコル名、ドメイン名、ポート番号、このポートは、(HTTPデフォルトポート80、HTTPSデフォルトポート443)隠されたデフォルトのポート番号です。プロトコル:HTTPSドメイン:www.baidu.com、一意サイトの場所に名前を付けるために使用されるには、/これは、サーバー名を見つけるためにウェブサイトを通じて、あるルートディレクトリ、で、その後、Webサーバのルートディレクトリに保存されています


あなたと(①クエリブラウザのキャッシュ、現在のURLのDNSキャッシュレコード②オペレーティングシステムのキャッシュがあるかどうか:二つは、DNS DNS名前解決プロセスは、(このプロセスは概要がライン上にある)のIPアドレスを処理するために戻すことが実際にドメイン名ですIPを同梱ローカルホストファイル)③クエリローカルドメインネームサーバ(DNSが約80%、ここで完了し、このサーバがどこかの街で、一般的である)以上のドメイン名の解決がまだ完了していない、ローカルドメイン名サーバーは、他のルートネームサーバにクエリーを送信し続け...........


第三には、IPアドレス(スリーウェイハンドシェイクの人気バージョン)最初の握手取得した後、TCPコネクションの確立:クライアントとサーバーが通信するために、我々は最初の "= 1の接続要求信号SYNを発行した後、すぐにサーバーに通知しなければなりませんサーバーの兄は、私があなたにお話したいと思います。」第二のハンドシェイク:サーバーがクライアントからの接続要求を受信すると、この時間はクライアントに確認メッセージを与えるために、「私は、私はここに準備ができています(ACK)を知っている、あなたは今、それ(SYN)を接続することができます」 。サードハンドシェイク:クライアントは、サーバー接続情報の確認、をサーバに通知するために礼儀正しくするために、「よし、聞かせてのは、ユニコム(ACK)今すぐ開始」を受信します。完成されたこのプロセス全体への接続を確立し、次のステップは、私は情報の送信の交換をしたままでもあなたの両方のプロセスです。


第四に、ブラウザは、サーバーの一般的なリクエストメソッドにHTTPリクエストを送信します

いいえ。 方法 説明
1 取得する リクエストページ情報が指定され、エンティティボディを返します。
2 GETリクエストと同様、ヘッダを取得するため、応答ではなく、特定のコンテンツを返します
3 役職 処理要求指定されたリソース(例えば、ファイル送信フォームまたはアップロード)にデータを送信します。データは、リクエストボディに含まれています。POSTリクエストは、新しいリソースにリソースを確立および/または既存の改正をもたらすことができます。
4 プット データは、文書の内容を交換するために指定されたクライアントからサーバに送信されます。
5 DELETE 指定されたページを削除するには、サーバーを要求します。
6 CONNECT HTTP / 1.1プロトコルは、プロキシサーバーのパイプラインモードへの接続のために予約することができます。
7 OPTIONS これは、クライアントがサーバーのパフォーマンスを表示することができます。
8 トレース エコー要求は、主にテストや診断のために、サーバーが受信しました。
9 パッチ これは、局部的に知られているリソースの更新を使用PUTメソッドを補完します。

 あなたはリクエストメソッドを表示するF12をクリックすることができます

 

第五に、ブラウザのキャッシュ


第六に、ブラウザが応答を受信  

服务器在收到浏览器发送的HTTP请求之后,会将收到的HTTP报文封装成HTTP的Request对象,并通过不同的Web服务器进行处理,处理完的结果以HTTP的Response对象返回,主要包括状态码,响应头,响应报文三个部分。

 

状态码主要包括以下部分

1xx:指示信息–表示请求已接收,继续处理。

2xx:成功–表示请求已被成功接收、理解、接受。

3xx:重定向–要完成请求必须进行更进一步的操作。

4xx:客户端错误–请求有语法错误或请求无法实现。

5xx:服务器端错误–服务器未能实现合法的请求。
看到响应码500等5xx类型,一般是在开发人员在操作,不要着急提bug哦
  响应头主要由Cache-Control、 Connection、Date、Pragma等组成。响应体为服务器返回给浏览器的信息,主要由HTML,css,js,图片文件组成。如下 

七、页面渲染

八、关闭TCP连接

四次挥手断开连接通俗版:

第一次挥手:双方交流的差不多了,此时客户端也已经结尾了,接下来要断开通信连接,所以告诉服务端“我说完了(FIN)”,此时自身形成等待结束连接的状态。 

第二次挥手:服务端知道客户端已经没话说了,服务端此时还有两句话要给客户端说“我知道你说完了(ACK),我再说两句&*…%¥”…

 第三次挥手:此时客户端洗耳恭听继续处于等待结束的状态,服务器端也说完了,自身此时处于等待关闭连接的状态,并对告诉客户端,“我说完了,咱们断了吧(FIN)”。 

第四次挥手:客户端收知道服务端也说完了,也要告诉服务端一声(ACK),因为连接和断开要双方都按下关闭操作才能断开,客户端同时又为自己定义一个定时器,因为不知道刚才说的这句话能不能准确到达服务端(网络不稳定或者其他因素引起的网络原因)。所以默认时间定为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了自己的确认信息,此时客户端就关闭自身连接,服务器端一旦接收到客户端发来的确定通知就立刻关闭服务器端的连接。 到此为止双方整个通信过程就此终结。 这里要声明一下:断开链接不一定就是客户端,谁都可以先发起断开指令,另外客户端和服务端是没有固定标准的,谁先发起请求谁就是客户端。 

再来看一下这几个问题

Question 1请讲一下tcp三次握手

见上文
Question 2 tcp和http有什么区别??

http基于TCP连接HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCPTCP是传输层(底层通讯协议),定义的是数据传输和连接方式的规范HTTP是应用层协议,定义的是传输数据的内容的规范
Question 3 http和https区别?

1、http明文传输,连接无状态;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。

3、http端口80,https端口443。HTTP:超文本传输协议。是一个客户端和服务器端请求和应答的标准,用于从服务器传输超文本到本地浏览器的传输协议。HTTPS:加了密的HTTP。HTTPS=HTTP+TLS或SSL,SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)
Question 4 http请求方法?见上文
Question 5常见的返回状态码有哪些?都是什么含义?见上文

 

文章首发于公众号:软件测试er

おすすめ

転載: www.cnblogs.com/lrence/p/11929318.html